@vltpkg/query 0.0.0-3 → 0.0.0-31
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/README.md +39 -82
- package/dist/esm/attribute.d.ts +1 -1
- package/dist/esm/attribute.d.ts.map +1 -1
- package/dist/esm/attribute.js +8 -13
- package/dist/esm/attribute.js.map +1 -1
- package/dist/esm/combinator.d.ts.map +1 -1
- package/dist/esm/combinator.js +5 -2
- package/dist/esm/combinator.js.map +1 -1
- package/dist/esm/id.d.ts.map +1 -1
- package/dist/esm/id.js +23 -7
- package/dist/esm/id.js.map +1 -1
- package/dist/esm/index.d.ts +40 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +302 -23
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parser.d.ts +15 -0
- package/dist/esm/parser.d.ts.map +1 -0
- package/dist/esm/parser.js +93 -0
- package/dist/esm/parser.js.map +1 -0
- package/dist/esm/pseudo/abandoned.d.ts +7 -0
- package/dist/esm/pseudo/abandoned.d.ts.map +1 -0
- package/dist/esm/pseudo/abandoned.js +6 -0
- package/dist/esm/pseudo/abandoned.js.map +1 -0
- package/dist/esm/pseudo/attr.d.ts +2 -1
- package/dist/esm/pseudo/attr.d.ts.map +1 -1
- package/dist/esm/pseudo/attr.js +10 -2
- package/dist/esm/pseudo/attr.js.map +1 -1
- package/dist/esm/pseudo/built.d.ts +8 -0
- package/dist/esm/pseudo/built.d.ts.map +1 -0
- package/dist/esm/pseudo/built.js +16 -0
- package/dist/esm/pseudo/built.js.map +1 -0
- package/dist/esm/pseudo/confused.d.ts +9 -0
- package/dist/esm/pseudo/confused.d.ts.map +1 -0
- package/dist/esm/pseudo/confused.js +19 -0
- package/dist/esm/pseudo/confused.js.map +1 -0
- package/dist/esm/pseudo/cve.d.ts +13 -0
- package/dist/esm/pseudo/cve.d.ts.map +1 -0
- package/dist/esm/pseudo/cve.js +44 -0
- package/dist/esm/pseudo/cve.js.map +1 -0
- package/dist/esm/pseudo/cwe.d.ts +13 -0
- package/dist/esm/pseudo/cwe.d.ts.map +1 -0
- package/dist/esm/pseudo/cwe.js +43 -0
- package/dist/esm/pseudo/cwe.js.map +1 -0
- package/dist/esm/pseudo/debug.d.ts +7 -0
- package/dist/esm/pseudo/debug.d.ts.map +1 -0
- package/dist/esm/pseudo/debug.js +6 -0
- package/dist/esm/pseudo/debug.js.map +1 -0
- package/dist/esm/pseudo/deprecated.d.ts +7 -0
- package/dist/esm/pseudo/deprecated.d.ts.map +1 -0
- package/dist/esm/pseudo/deprecated.js +6 -0
- package/dist/esm/pseudo/deprecated.js.map +1 -0
- package/dist/esm/pseudo/dev.d.ts +6 -0
- package/dist/esm/pseudo/dev.d.ts.map +1 -0
- package/dist/esm/pseudo/dev.js +15 -0
- package/dist/esm/pseudo/dev.js.map +1 -0
- package/dist/esm/pseudo/dynamic.d.ts +7 -0
- package/dist/esm/pseudo/dynamic.d.ts.map +1 -0
- package/dist/esm/pseudo/dynamic.js +6 -0
- package/dist/esm/pseudo/dynamic.js.map +1 -0
- package/dist/esm/pseudo/empty.d.ts +7 -0
- package/dist/esm/pseudo/empty.d.ts.map +1 -0
- package/dist/esm/pseudo/empty.js +14 -0
- package/dist/esm/pseudo/empty.js.map +1 -0
- package/dist/esm/pseudo/entropic.d.ts +7 -0
- package/dist/esm/pseudo/entropic.d.ts.map +1 -0
- package/dist/esm/pseudo/entropic.js +6 -0
- package/dist/esm/pseudo/entropic.js.map +1 -0
- package/dist/esm/pseudo/env.d.ts +7 -0
- package/dist/esm/pseudo/env.d.ts.map +1 -0
- package/dist/esm/pseudo/env.js +6 -0
- package/dist/esm/pseudo/env.js.map +1 -0
- package/dist/esm/pseudo/eval.d.ts +7 -0
- package/dist/esm/pseudo/eval.d.ts.map +1 -0
- package/dist/esm/pseudo/eval.js +6 -0
- package/dist/esm/pseudo/eval.js.map +1 -0
- package/dist/esm/pseudo/fs.d.ts +7 -0
- package/dist/esm/pseudo/fs.d.ts.map +1 -0
- package/dist/esm/pseudo/fs.js +6 -0
- package/dist/esm/pseudo/fs.js.map +1 -0
- package/dist/esm/pseudo/helpers.d.ts +25 -1
- package/dist/esm/pseudo/helpers.d.ts.map +1 -1
- package/dist/esm/pseudo/helpers.js +53 -0
- package/dist/esm/pseudo/helpers.js.map +1 -1
- package/dist/esm/pseudo/host.d.ts +20 -0
- package/dist/esm/pseudo/host.d.ts.map +1 -0
- package/dist/esm/pseudo/host.js +80 -0
- package/dist/esm/pseudo/host.js.map +1 -0
- package/dist/esm/pseudo/license.d.ts +13 -0
- package/dist/esm/pseudo/license.d.ts.map +1 -0
- package/dist/esm/pseudo/license.js +75 -0
- package/dist/esm/pseudo/license.js.map +1 -0
- package/dist/esm/pseudo/link.d.ts +9 -0
- package/dist/esm/pseudo/link.d.ts.map +1 -0
- package/dist/esm/pseudo/link.js +25 -0
- package/dist/esm/pseudo/link.js.map +1 -0
- package/dist/esm/pseudo/malware.d.ts +24 -0
- package/dist/esm/pseudo/malware.d.ts.map +1 -0
- package/dist/esm/pseudo/malware.js +187 -0
- package/dist/esm/pseudo/malware.js.map +1 -0
- package/dist/esm/pseudo/minified.d.ts +7 -0
- package/dist/esm/pseudo/minified.d.ts.map +1 -0
- package/dist/esm/pseudo/minified.js +6 -0
- package/dist/esm/pseudo/minified.js.map +1 -0
- package/dist/esm/pseudo/missing.d.ts +8 -0
- package/dist/esm/pseudo/missing.d.ts.map +1 -0
- package/dist/esm/pseudo/missing.js +15 -0
- package/dist/esm/pseudo/missing.js.map +1 -0
- package/dist/esm/pseudo/native.d.ts +7 -0
- package/dist/esm/pseudo/native.d.ts.map +1 -0
- package/dist/esm/pseudo/native.js +6 -0
- package/dist/esm/pseudo/native.js.map +1 -0
- package/dist/esm/pseudo/network.d.ts +7 -0
- package/dist/esm/pseudo/network.d.ts.map +1 -0
- package/dist/esm/pseudo/network.js +6 -0
- package/dist/esm/pseudo/network.js.map +1 -0
- package/dist/esm/pseudo/obfuscated.d.ts +7 -0
- package/dist/esm/pseudo/obfuscated.d.ts.map +1 -0
- package/dist/esm/pseudo/obfuscated.js +6 -0
- package/dist/esm/pseudo/obfuscated.js.map +1 -0
- package/dist/esm/pseudo/optional.d.ts +6 -0
- package/dist/esm/pseudo/optional.d.ts.map +1 -0
- package/dist/esm/pseudo/optional.js +15 -0
- package/dist/esm/pseudo/optional.js.map +1 -0
- package/dist/esm/pseudo/outdated.d.ts +4 -4
- package/dist/esm/pseudo/outdated.d.ts.map +1 -1
- package/dist/esm/pseudo/outdated.js +44 -33
- package/dist/esm/pseudo/outdated.js.map +1 -1
- package/dist/esm/pseudo/overridden.d.ts +8 -0
- package/dist/esm/pseudo/overridden.d.ts.map +1 -0
- package/dist/esm/pseudo/overridden.js +17 -0
- package/dist/esm/pseudo/overridden.js.map +1 -0
- package/dist/esm/pseudo/path.d.ts +19 -0
- package/dist/esm/pseudo/path.d.ts.map +1 -0
- package/dist/esm/pseudo/path.js +113 -0
- package/dist/esm/pseudo/path.js.map +1 -0
- package/dist/esm/pseudo/peer.d.ts +6 -0
- package/dist/esm/pseudo/peer.d.ts.map +1 -0
- package/dist/esm/pseudo/peer.js +15 -0
- package/dist/esm/pseudo/peer.js.map +1 -0
- package/dist/esm/pseudo/prerelease.d.ts +18 -0
- package/dist/esm/pseudo/prerelease.d.ts.map +1 -0
- package/dist/esm/pseudo/prerelease.js +41 -0
- package/dist/esm/pseudo/prerelease.js.map +1 -0
- package/dist/esm/pseudo/private.d.ts +7 -0
- package/dist/esm/pseudo/private.d.ts.map +1 -0
- package/dist/esm/pseudo/private.js +16 -0
- package/dist/esm/pseudo/private.js.map +1 -0
- package/dist/esm/pseudo/prod.d.ts +6 -0
- package/dist/esm/pseudo/prod.d.ts.map +1 -0
- package/dist/esm/pseudo/prod.js +15 -0
- package/dist/esm/pseudo/prod.js.map +1 -0
- package/dist/esm/pseudo/published.d.ts +40 -0
- package/dist/esm/pseudo/published.d.ts.map +1 -0
- package/dist/esm/pseudo/published.js +180 -0
- package/dist/esm/pseudo/published.js.map +1 -0
- package/dist/esm/pseudo/root.d.ts +7 -0
- package/dist/esm/pseudo/root.d.ts.map +1 -0
- package/dist/esm/pseudo/root.js +18 -0
- package/dist/esm/pseudo/root.js.map +1 -0
- package/dist/esm/pseudo/scanned.d.ts +9 -0
- package/dist/esm/pseudo/scanned.d.ts.map +1 -0
- package/dist/esm/pseudo/scanned.js +17 -0
- package/dist/esm/pseudo/scanned.js.map +1 -0
- package/dist/esm/pseudo/score.d.ts +16 -0
- package/dist/esm/pseudo/score.d.ts.map +1 -0
- package/dist/esm/pseudo/score.js +133 -0
- package/dist/esm/pseudo/score.js.map +1 -0
- package/dist/esm/pseudo/scripts.d.ts +10 -0
- package/dist/esm/pseudo/scripts.d.ts.map +1 -0
- package/dist/esm/pseudo/scripts.js +44 -0
- package/dist/esm/pseudo/scripts.js.map +1 -0
- package/dist/esm/pseudo/semver.d.ts +2 -1
- package/dist/esm/pseudo/semver.d.ts.map +1 -1
- package/dist/esm/pseudo/semver.js +11 -24
- package/dist/esm/pseudo/semver.js.map +1 -1
- package/dist/esm/pseudo/severity.d.ts +15 -0
- package/dist/esm/pseudo/severity.d.ts.map +1 -0
- package/dist/esm/pseudo/severity.js +160 -0
- package/dist/esm/pseudo/severity.js.map +1 -0
- package/dist/esm/pseudo/shell.d.ts +7 -0
- package/dist/esm/pseudo/shell.d.ts.map +1 -0
- package/dist/esm/pseudo/shell.js +6 -0
- package/dist/esm/pseudo/shell.js.map +1 -0
- package/dist/esm/pseudo/shrinkwrap.d.ts +7 -0
- package/dist/esm/pseudo/shrinkwrap.d.ts.map +1 -0
- package/dist/esm/pseudo/shrinkwrap.js +6 -0
- package/dist/esm/pseudo/shrinkwrap.js.map +1 -0
- package/dist/esm/pseudo/spec.d.ts +17 -0
- package/dist/esm/pseudo/spec.d.ts.map +1 -0
- package/dist/esm/pseudo/spec.js +102 -0
- package/dist/esm/pseudo/spec.js.map +1 -0
- package/dist/esm/pseudo/squat.d.ts +15 -0
- package/dist/esm/pseudo/squat.d.ts.map +1 -0
- package/dist/esm/pseudo/squat.js +172 -0
- package/dist/esm/pseudo/squat.js.map +1 -0
- package/dist/esm/pseudo/suspicious.d.ts +7 -0
- package/dist/esm/pseudo/suspicious.d.ts.map +1 -0
- package/dist/esm/pseudo/suspicious.js +6 -0
- package/dist/esm/pseudo/suspicious.js.map +1 -0
- package/dist/esm/pseudo/tracker.d.ts +7 -0
- package/dist/esm/pseudo/tracker.d.ts.map +1 -0
- package/dist/esm/pseudo/tracker.js +6 -0
- package/dist/esm/pseudo/tracker.js.map +1 -0
- package/dist/esm/pseudo/trivial.d.ts +7 -0
- package/dist/esm/pseudo/trivial.d.ts.map +1 -0
- package/dist/esm/pseudo/trivial.js +6 -0
- package/dist/esm/pseudo/trivial.js.map +1 -0
- package/dist/esm/pseudo/type.d.ts +8 -0
- package/dist/esm/pseudo/type.d.ts.map +1 -0
- package/dist/esm/pseudo/type.js +22 -0
- package/dist/esm/pseudo/type.js.map +1 -0
- package/dist/esm/pseudo/undesirable.d.ts +7 -0
- package/dist/esm/pseudo/undesirable.d.ts.map +1 -0
- package/dist/esm/pseudo/undesirable.js +6 -0
- package/dist/esm/pseudo/undesirable.js.map +1 -0
- package/dist/esm/pseudo/unknown.d.ts +7 -0
- package/dist/esm/pseudo/unknown.d.ts.map +1 -0
- package/dist/esm/pseudo/unknown.js +6 -0
- package/dist/esm/pseudo/unknown.js.map +1 -0
- package/dist/esm/pseudo/unmaintained.d.ts +7 -0
- package/dist/esm/pseudo/unmaintained.d.ts.map +1 -0
- package/dist/esm/pseudo/unmaintained.js +6 -0
- package/dist/esm/pseudo/unmaintained.js.map +1 -0
- package/dist/esm/pseudo/unpopular.d.ts +7 -0
- package/dist/esm/pseudo/unpopular.d.ts.map +1 -0
- package/dist/esm/pseudo/unpopular.js +6 -0
- package/dist/esm/pseudo/unpopular.js.map +1 -0
- package/dist/esm/pseudo/unstable.d.ts +7 -0
- package/dist/esm/pseudo/unstable.d.ts.map +1 -0
- package/dist/esm/pseudo/unstable.js +6 -0
- package/dist/esm/pseudo/unstable.js.map +1 -0
- package/dist/esm/pseudo/workspace.d.ts +6 -0
- package/dist/esm/pseudo/workspace.d.ts.map +1 -0
- package/dist/esm/pseudo/workspace.js +20 -0
- package/dist/esm/pseudo/workspace.js.map +1 -0
- package/dist/esm/pseudo.d.ts.map +1 -1
- package/dist/esm/pseudo.js +153 -108
- package/dist/esm/pseudo.js.map +1 -1
- package/dist/esm/types.d.ts +98 -26
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -106
- package/dist/esm/types.js.map +1 -1
- package/package.json +20 -15
- package/dist/esm/class.d.ts +0 -6
- package/dist/esm/class.d.ts.map +0 -1
- package/dist/esm/class.js +0 -128
- package/dist/esm/class.js.map +0 -1
package/dist/esm/types.js
CHANGED
|
@@ -1,107 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export const isPostcssNodeWithChildren = (node) => 'type' in node && 'nodes' in node;
|
|
3
|
-
export const asPostcssNodeWithChildren = (node) => {
|
|
4
|
-
if (!node) {
|
|
5
|
-
throw error('Expected a query node');
|
|
6
|
-
}
|
|
7
|
-
if (!isPostcssNodeWithChildren(node)) {
|
|
8
|
-
throw error('Not a query selector node with children', {
|
|
9
|
-
found: node,
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
return node;
|
|
13
|
-
};
|
|
14
|
-
const isObj = (o) => !!o && typeof o === 'object';
|
|
15
|
-
export const isAttributeNode = (node) => isObj(node) && !!node.attribute && node.type === 'attribute';
|
|
16
|
-
export const asAttributeNode = (node) => {
|
|
17
|
-
if (!node) {
|
|
18
|
-
throw error('Expected a query node');
|
|
19
|
-
}
|
|
20
|
-
if (!isAttributeNode(node)) {
|
|
21
|
-
throw error('Mismatching query node', {
|
|
22
|
-
wanted: 'attribute',
|
|
23
|
-
found: node.type,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return node;
|
|
27
|
-
};
|
|
28
|
-
export const isClassNode = (node) => isObj(node) && !!node.value && node.type === 'class';
|
|
29
|
-
export const asClassNode = (node) => {
|
|
30
|
-
if (!node) {
|
|
31
|
-
throw error('Expected a query node');
|
|
32
|
-
}
|
|
33
|
-
if (!isClassNode(node)) {
|
|
34
|
-
throw error('Mismatching query node', {
|
|
35
|
-
wanted: 'class',
|
|
36
|
-
found: node.type,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
return node;
|
|
40
|
-
};
|
|
41
|
-
export const isCombinatorNode = (node) => isObj(node) && !!node.value && node.type === 'combinator';
|
|
42
|
-
export const asCombinatorNode = (node) => {
|
|
43
|
-
if (!node) {
|
|
44
|
-
throw error('Expected a query node');
|
|
45
|
-
}
|
|
46
|
-
if (!isCombinatorNode(node)) {
|
|
47
|
-
throw error('Mismatching query node', {
|
|
48
|
-
wanted: 'combinator',
|
|
49
|
-
found: node.type,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
return node;
|
|
53
|
-
};
|
|
54
|
-
export const isIdentifierNode = (node) => isObj(node) && !!node.value && node.type === 'id';
|
|
55
|
-
export const asIdentifierNode = (node) => {
|
|
56
|
-
if (!node) {
|
|
57
|
-
throw error('Expected a query node');
|
|
58
|
-
}
|
|
59
|
-
if (!isIdentifierNode(node)) {
|
|
60
|
-
throw error('Mismatching query node', {
|
|
61
|
-
wanted: 'id',
|
|
62
|
-
found: node.type,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
return node;
|
|
66
|
-
};
|
|
67
|
-
export const isSelectorNode = (node) => isPostcssNodeWithChildren(node) && node.type === 'selector';
|
|
68
|
-
export const isPseudoNode = (node) => isObj(node) && !!node.value && node.type === 'pseudo';
|
|
69
|
-
export const asPseudoNode = (node) => {
|
|
70
|
-
if (!node) {
|
|
71
|
-
throw error('Expected a query node');
|
|
72
|
-
}
|
|
73
|
-
if (!isPseudoNode(node)) {
|
|
74
|
-
throw error('Mismatching query node', {
|
|
75
|
-
wanted: 'pseudo',
|
|
76
|
-
found: node.type,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
return node;
|
|
80
|
-
};
|
|
81
|
-
export const isTagNode = (node) => isObj(node) && !!node.value && node.type === 'tag';
|
|
82
|
-
export const asTagNode = (node) => {
|
|
83
|
-
if (!node) {
|
|
84
|
-
throw error('Expected a query node');
|
|
85
|
-
}
|
|
86
|
-
if (!isTagNode(node)) {
|
|
87
|
-
throw error('Mismatching query node', {
|
|
88
|
-
wanted: 'tag',
|
|
89
|
-
found: node.type,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return node;
|
|
93
|
-
};
|
|
94
|
-
export const isStringNode = (node) => isObj(node) && !!node.value && node.type === 'string';
|
|
95
|
-
export const asStringNode = (node) => {
|
|
96
|
-
if (!node) {
|
|
97
|
-
throw error('Expected a query node');
|
|
98
|
-
}
|
|
99
|
-
if (!isStringNode(node)) {
|
|
100
|
-
throw error('Mismatching query node', {
|
|
101
|
-
wanted: 'string',
|
|
102
|
-
found: node.type,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return node;
|
|
106
|
-
};
|
|
1
|
+
export {};
|
|
107
2
|
//# sourceMappingURL=types.js.map
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { EdgeLike, NodeLike } from '@vltpkg/types'\nimport type {\n SecurityArchiveLike,\n PackageScore,\n} from '@vltpkg/security-archive'\nimport type { DepID } from '@vltpkg/dep-id'\nimport type { PostcssNode } from '@vltpkg/dss-parser'\n\nexport type HostContextsMapResult = {\n initialEdges: EdgeLike[]\n initialNodes: NodeLike[]\n edges: EdgeLike[]\n nodes: NodeLike[]\n securityArchive: SecurityArchiveLike | undefined\n}\n\nexport type HostContextsMap = Map<\n string,\n () => Promise<HostContextsMapResult>\n>\n\nexport type Specificity = {\n idCounter: number\n commonCounter: number\n}\n\nexport type GraphSelectionState = {\n nodes: Set<NodeLike>\n edges: Set<EdgeLike>\n}\n\nexport type ParserState = {\n cancellable: () => Promise<void>\n collect: GraphSelectionState\n comment: string\n current: PostcssNode\n hostContexts?: HostContextsMap\n importers: Set<NodeLike>\n initial: GraphSelectionState\n loose?: boolean\n next?: PostcssNode\n prev?: PostcssNode\n result?: NodeLike[]\n signal: AbortSignal\n walk: ParserFn\n partial: GraphSelectionState\n retries: number\n securityArchive: SecurityArchiveLike | undefined\n scopeIDs?: DepID[]\n specificity: Specificity\n}\n\nexport type QueryResponse = {\n edges: QueryResponseEdge[]\n nodes: QueryResponseNode[]\n importers: QueryResponseNode[]\n comment: string\n specificity: Specificity\n}\n\nexport type QueryResponseEdge = Omit<EdgeLike, 'from' | 'to'> & {\n from: QueryResponseNode\n to?: QueryResponseNode\n}\n\nexport type QueryResponseNode = Omit<\n NodeLike,\n 'edgesIn' | 'edgesOut'\n> & {\n edgesIn: Set<QueryResponseEdge>\n edgesOut: Map<string, QueryResponseEdge>\n insights: Insights\n toJSON: () => Pick<\n QueryResponseNode,\n | 'id'\n | 'name'\n | 'version'\n | 'location'\n | 'importer'\n | 'manifest'\n | 'projectRoot'\n | 'integrity'\n | 'resolved'\n | 'dev'\n | 'optional'\n | 'insights'\n | 'confused'\n >\n}\n\nexport type Insights = {\n abandoned?: boolean\n confused?: boolean\n cve?: `CVE-${string}`[]\n cwe?: `CWE-${string}`[]\n debug?: boolean\n deprecated?: boolean\n dynamic?: boolean\n entropic?: boolean\n env?: boolean\n eval?: boolean\n fs?: boolean\n license?: LicenseInsights\n malware?: MalwareInsights\n minified?: boolean\n native?: boolean\n network?: boolean\n obfuscated?: boolean\n scanned: boolean\n score?: PackageScore\n scripts?: boolean\n severity?: SeverityInsights\n shell?: boolean\n shrinkwrap?: boolean\n squat?: SquatInsights\n suspicious?: boolean\n tracker?: boolean\n trivial?: boolean\n undesirable?: boolean\n unknown?: boolean\n unmaintained?: boolean\n unpopular?: boolean\n unstable?: boolean\n}\n\nexport type LicenseInsights = {\n unlicensed: boolean\n misc: boolean\n restricted: boolean\n ambiguous: boolean\n copyleft: boolean\n unknown: boolean\n none: boolean\n exception: boolean\n}\n\nexport type LeveledInsights = {\n low: boolean\n medium: boolean\n high: boolean\n critical: boolean\n}\n\nexport type MalwareInsights = LeveledInsights\nexport type SeverityInsights = LeveledInsights\n\nexport type SquatInsights = {\n medium: boolean\n critical: boolean\n}\n\nexport type ParserFn = (opt: ParserState) => Promise<ParserState>\n\nexport type ParsedSelectorToken = PostcssNode & {\n token: string\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vltpkg/query",
|
|
3
3
|
"description": "Query syntax parser that retrieves items from a graph",
|
|
4
|
-
"version": "0.0.0-
|
|
4
|
+
"version": "0.0.0-31",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/vltpkg/vltpkg.git",
|
|
8
8
|
"directory": "src/query"
|
|
9
9
|
},
|
|
10
|
+
"author": "vlt technology inc. <support@vlt.sh> (http://vlt.sh)",
|
|
10
11
|
"tshy": {
|
|
11
12
|
"selfLink": false,
|
|
12
13
|
"liveDev": true,
|
|
@@ -19,25 +20,28 @@
|
|
|
19
20
|
}
|
|
20
21
|
},
|
|
21
22
|
"dependencies": {
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"@vltpkg/
|
|
26
|
-
"@vltpkg/
|
|
27
|
-
"@vltpkg/
|
|
23
|
+
"minimatch": "^10.0.3",
|
|
24
|
+
"p-retry": "^7.0.0",
|
|
25
|
+
"postcss-selector-parser": "^7.1.0",
|
|
26
|
+
"@vltpkg/dep-id": "0.0.0-31",
|
|
27
|
+
"@vltpkg/graph": "0.0.0-31",
|
|
28
|
+
"@vltpkg/dss-parser": "0.0.0-31",
|
|
29
|
+
"@vltpkg/semver": "0.0.0-31",
|
|
30
|
+
"@vltpkg/security-archive": "0.0.0-31",
|
|
31
|
+
"@vltpkg/types": "0.0.0-31",
|
|
32
|
+
"@vltpkg/error-cause": "0.0.0-31"
|
|
28
33
|
},
|
|
29
34
|
"devDependencies": {
|
|
30
|
-
"@eslint/js": "^9.
|
|
31
|
-
"@types/
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"prettier": "^3.4.2",
|
|
35
|
+
"@eslint/js": "^9.34.0",
|
|
36
|
+
"@types/node": "^22.17.2",
|
|
37
|
+
"eslint": "^9.34.0",
|
|
38
|
+
"prettier": "^3.6.2",
|
|
35
39
|
"tap": "^21.1.0",
|
|
36
40
|
"tshy": "^3.0.2",
|
|
37
|
-
"typedoc": "0.27.
|
|
41
|
+
"typedoc": "~0.27.9",
|
|
38
42
|
"typescript": "5.7.3",
|
|
39
|
-
"typescript-eslint": "^8.
|
|
40
|
-
"@vltpkg/spec": "0.0.0-
|
|
43
|
+
"typescript-eslint": "^8.40.0",
|
|
44
|
+
"@vltpkg/spec": "0.0.0-31"
|
|
41
45
|
},
|
|
42
46
|
"license": "BSD-2-Clause-Patent",
|
|
43
47
|
"engines": {
|
|
@@ -69,6 +73,7 @@
|
|
|
69
73
|
"snap": "tap",
|
|
70
74
|
"test": "tap",
|
|
71
75
|
"posttest": "tsc --noEmit",
|
|
76
|
+
"tshy": "tshy",
|
|
72
77
|
"typecheck": "tsc --noEmit"
|
|
73
78
|
}
|
|
74
79
|
}
|
package/dist/esm/class.d.ts
DELETED
package/dist/esm/class.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/class.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAY,WAAW,EAAE,MAAM,YAAY,CAAA;AAoHvD;;GAEG;AACH,eAAO,MAAM,OAAO,UAAiB,WAAW,yBAa/C,CAAA"}
|
package/dist/esm/class.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { asClassNode } from "./types.js";
|
|
2
|
-
const classSelectors = {
|
|
3
|
-
prod: async (state) => {
|
|
4
|
-
for (const edge of state.partial.edges) {
|
|
5
|
-
if (edge.type !== 'prod' || edge.from.dev) {
|
|
6
|
-
state.partial.edges.delete(edge);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
for (const node of state.partial.nodes) {
|
|
10
|
-
if (!node.edgesIn.size) {
|
|
11
|
-
state.partial.nodes.delete(node);
|
|
12
|
-
continue;
|
|
13
|
-
}
|
|
14
|
-
const iterator = new Set(node.edgesIn);
|
|
15
|
-
for (const edge of iterator) {
|
|
16
|
-
if (!state.partial.edges.has(edge)) {
|
|
17
|
-
iterator.delete(edge);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
if (!iterator.size) {
|
|
21
|
-
state.partial.nodes.delete(node);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return state;
|
|
25
|
-
},
|
|
26
|
-
dev: async (state) => {
|
|
27
|
-
for (const edge of state.partial.edges) {
|
|
28
|
-
if (edge.type !== 'dev' && !edge.from.dev) {
|
|
29
|
-
state.partial.edges.delete(edge);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
for (const node of state.partial.nodes) {
|
|
33
|
-
if (!node.edgesIn.size) {
|
|
34
|
-
state.partial.nodes.delete(node);
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
const iterator = new Set(node.edgesIn);
|
|
38
|
-
for (const edge of iterator) {
|
|
39
|
-
if (!state.partial.edges.has(edge)) {
|
|
40
|
-
iterator.delete(edge);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (!iterator.size) {
|
|
44
|
-
state.partial.nodes.delete(node);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return state;
|
|
48
|
-
},
|
|
49
|
-
optional: async (state) => {
|
|
50
|
-
for (const edge of state.partial.edges) {
|
|
51
|
-
if (edge.type !== 'optional' && !edge.from.optional) {
|
|
52
|
-
state.partial.edges.delete(edge);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
for (const node of state.partial.nodes) {
|
|
56
|
-
if (!node.edgesIn.size) {
|
|
57
|
-
state.partial.nodes.delete(node);
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
const iterator = new Set(node.edgesIn);
|
|
61
|
-
for (const edge of iterator) {
|
|
62
|
-
if (!state.partial.edges.has(edge)) {
|
|
63
|
-
iterator.delete(edge);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (!iterator.size) {
|
|
67
|
-
state.partial.nodes.delete(node);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return state;
|
|
71
|
-
},
|
|
72
|
-
peer: async (state) => {
|
|
73
|
-
for (const edge of state.partial.edges) {
|
|
74
|
-
if (edge.type !== 'peer') {
|
|
75
|
-
state.partial.edges.delete(edge);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
for (const node of state.partial.nodes) {
|
|
79
|
-
if (!node.edgesIn.size) {
|
|
80
|
-
state.partial.nodes.delete(node);
|
|
81
|
-
continue;
|
|
82
|
-
}
|
|
83
|
-
for (const e of node.edgesIn) {
|
|
84
|
-
if (!state.partial.edges.has(e)) {
|
|
85
|
-
state.partial.nodes.delete(node);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return state;
|
|
90
|
-
},
|
|
91
|
-
workspace: async (state) => {
|
|
92
|
-
for (const node of state.partial.nodes) {
|
|
93
|
-
if (!node.importer || node.mainImporter) {
|
|
94
|
-
state.partial.nodes.delete(node);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
for (const edge of state.partial.edges) {
|
|
98
|
-
// workspaces can't be missing
|
|
99
|
-
if (!edge.to) {
|
|
100
|
-
state.partial.edges.delete(edge);
|
|
101
|
-
// keep only edges that are linking to preivously kept nodes
|
|
102
|
-
}
|
|
103
|
-
else if (!state.partial.nodes.has(edge.to)) {
|
|
104
|
-
state.partial.edges.delete(edge);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return state;
|
|
108
|
-
},
|
|
109
|
-
// TBD: all things bundled
|
|
110
|
-
// bundled: () => false,
|
|
111
|
-
};
|
|
112
|
-
const classSelectorsMap = new Map(Object.entries(classSelectors));
|
|
113
|
-
/**
|
|
114
|
-
* Parse classes, e.g: `.prod`, `.dev`, `.optional`, etc
|
|
115
|
-
*/
|
|
116
|
-
export const classFn = async (state) => {
|
|
117
|
-
await state.cancellable();
|
|
118
|
-
const curr = asClassNode(state.current);
|
|
119
|
-
const comparatorFn = curr.value && classSelectorsMap.get(curr.value);
|
|
120
|
-
if (!comparatorFn) {
|
|
121
|
-
if (state.loose) {
|
|
122
|
-
return state;
|
|
123
|
-
}
|
|
124
|
-
throw new Error(`Unsupported class: ${state.current.value}`);
|
|
125
|
-
}
|
|
126
|
-
return comparatorFn(state);
|
|
127
|
-
};
|
|
128
|
-
//# sourceMappingURL=class.js.map
|
package/dist/esm/class.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/class.ts"],"names":[],"mappings":"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","sourcesContent":["import { asClassNode } from './types.ts'\nimport type { ParserFn, ParserState } from './types.ts'\n\nconst classSelectors: Record<string, ParserFn> = {\n prod: async (state: ParserState) => {\n for (const edge of state.partial.edges) {\n if (edge.type !== 'prod' || edge.from.dev) {\n state.partial.edges.delete(edge)\n }\n }\n for (const node of state.partial.nodes) {\n if (!node.edgesIn.size) {\n state.partial.nodes.delete(node)\n continue\n }\n const iterator = new Set(node.edgesIn)\n for (const edge of iterator) {\n if (!state.partial.edges.has(edge)) {\n iterator.delete(edge)\n }\n }\n if (!iterator.size) {\n state.partial.nodes.delete(node)\n }\n }\n return state\n },\n dev: async (state: ParserState) => {\n for (const edge of state.partial.edges) {\n if (edge.type !== 'dev' && !edge.from.dev) {\n state.partial.edges.delete(edge)\n }\n }\n for (const node of state.partial.nodes) {\n if (!node.edgesIn.size) {\n state.partial.nodes.delete(node)\n continue\n }\n const iterator = new Set(node.edgesIn)\n for (const edge of iterator) {\n if (!state.partial.edges.has(edge)) {\n iterator.delete(edge)\n }\n }\n if (!iterator.size) {\n state.partial.nodes.delete(node)\n }\n }\n return state\n },\n optional: async (state: ParserState) => {\n for (const edge of state.partial.edges) {\n if (edge.type !== 'optional' && !edge.from.optional) {\n state.partial.edges.delete(edge)\n }\n }\n for (const node of state.partial.nodes) {\n if (!node.edgesIn.size) {\n state.partial.nodes.delete(node)\n continue\n }\n const iterator = new Set(node.edgesIn)\n for (const edge of iterator) {\n if (!state.partial.edges.has(edge)) {\n iterator.delete(edge)\n }\n }\n if (!iterator.size) {\n state.partial.nodes.delete(node)\n }\n }\n return state\n },\n peer: async (state: ParserState) => {\n for (const edge of state.partial.edges) {\n if (edge.type !== 'peer') {\n state.partial.edges.delete(edge)\n }\n }\n for (const node of state.partial.nodes) {\n if (!node.edgesIn.size) {\n state.partial.nodes.delete(node)\n continue\n }\n for (const e of node.edgesIn) {\n if (!state.partial.edges.has(e)) {\n state.partial.nodes.delete(node)\n }\n }\n }\n return state\n },\n workspace: async (state: ParserState) => {\n for (const node of state.partial.nodes) {\n if (!node.importer || node.mainImporter) {\n state.partial.nodes.delete(node)\n }\n }\n for (const edge of state.partial.edges) {\n // workspaces can't be missing\n if (!edge.to) {\n state.partial.edges.delete(edge)\n // keep only edges that are linking to preivously kept nodes\n } else if (!state.partial.nodes.has(edge.to)) {\n state.partial.edges.delete(edge)\n }\n }\n return state\n },\n // TBD: all things bundled\n // bundled: () => false,\n}\n\nconst classSelectorsMap = new Map<string, ParserFn>(\n Object.entries(classSelectors),\n)\n\n/**\n * Parse classes, e.g: `.prod`, `.dev`, `.optional`, etc\n */\nexport const classFn = async (state: ParserState) => {\n await state.cancellable()\n\n const curr = asClassNode(state.current)\n const comparatorFn = curr.value && classSelectorsMap.get(curr.value)\n if (!comparatorFn) {\n if (state.loose) {\n return state\n }\n\n throw new Error(`Unsupported class: ${state.current.value}`)\n }\n return comparatorFn(state)\n}\n"]}
|