@orz/query 0.0.0-stage → 0.1.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/LICENSE +29 -0
- package/README.md +103 -2
- package/dist/braces.d.ts +32 -0
- package/dist/braces.d.ts.map +1 -0
- package/dist/braces.js +127 -0
- package/dist/braces.js.map +1 -0
- package/dist/commands.d.ts +109 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +260 -0
- package/dist/commands.js.map +1 -0
- package/dist/completion.d.ts +166 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +400 -0
- package/dist/completion.js.map +1 -0
- package/dist/diagnostics.d.ts +20 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +63 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/query.d.ts +119 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +449 -0
- package/dist/query.js.map +1 -0
- package/dist/shell-words.d.ts +38 -0
- package/dist/shell-words.d.ts.map +1 -0
- package/dist/shell-words.js +136 -0
- package/dist/shell-words.js.map +1 -0
- package/dist/suggest.d.ts +7 -0
- package/dist/suggest.d.ts.map +1 -0
- package/dist/suggest.js +44 -0
- package/dist/suggest.js.map +1 -0
- package/dist/values.d.ts +70 -0
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +91 -0
- package/dist/values.js.map +1 -0
- package/package.json +32 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The candidate closest to `value`, case-insensitively, within
|
|
3
|
+
* `max(1, floor(length / 3))` edits; ties go to the earlier candidate.
|
|
4
|
+
* Null when nothing is that close, so a wild guess is never offered.
|
|
5
|
+
*/
|
|
6
|
+
export declare function didYouMean(value: string, candidates: readonly string[]): string | null;
|
|
7
|
+
//# sourceMappingURL=suggest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../src/suggest.ts"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,MAAM,GAAG,IAAI,CAaf"}
|
package/dist/suggest.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Levenshtein distance over code points, plus adjacent transposition as one
|
|
3
|
+
* edit (optimal string alignment). Plain Levenshtein counts `opne` → `open`
|
|
4
|
+
* as two edits, which the threshold below rejects for a four-letter word,
|
|
5
|
+
* and a swapped pair is the commonest typo there is.
|
|
6
|
+
*/
|
|
7
|
+
function editDistance(a, b) {
|
|
8
|
+
let beforePrevious = [];
|
|
9
|
+
let previous = Array.from({ length: b.length + 1 }, (_, j) => j);
|
|
10
|
+
for (let i = 1; i <= a.length; i += 1) {
|
|
11
|
+
const current = [i];
|
|
12
|
+
for (let j = 1; j <= b.length; j += 1) {
|
|
13
|
+
const substitution = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
14
|
+
let distance = Math.min(previous[j] + 1, current[j - 1] + 1, previous[j - 1] + substitution);
|
|
15
|
+
if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
|
|
16
|
+
distance = Math.min(distance, beforePrevious[j - 2] + 1);
|
|
17
|
+
}
|
|
18
|
+
current[j] = distance;
|
|
19
|
+
}
|
|
20
|
+
beforePrevious = previous;
|
|
21
|
+
previous = current;
|
|
22
|
+
}
|
|
23
|
+
return previous[b.length];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The candidate closest to `value`, case-insensitively, within
|
|
27
|
+
* `max(1, floor(length / 3))` edits; ties go to the earlier candidate.
|
|
28
|
+
* Null when nothing is that close, so a wild guess is never offered.
|
|
29
|
+
*/
|
|
30
|
+
export function didYouMean(value, candidates) {
|
|
31
|
+
const typed = Array.from(value.toLowerCase());
|
|
32
|
+
const threshold = Math.max(1, Math.floor(typed.length / 3));
|
|
33
|
+
let best = null;
|
|
34
|
+
let bestDistance = threshold + 1;
|
|
35
|
+
for (const candidate of candidates) {
|
|
36
|
+
const distance = editDistance(typed, Array.from(candidate.toLowerCase()));
|
|
37
|
+
if (distance < bestDistance) {
|
|
38
|
+
best = candidate;
|
|
39
|
+
bestDistance = distance;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return best;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=suggest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../src/suggest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,SAAS,YAAY,CAAC,CAAoB,EAAE,CAAoB;IAC9D,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CACpB,QAAQ,CAAC,CAAC,CAAY,GAAG,CAAC,EAC1B,OAAO,CAAC,CAAC,GAAG,CAAC,CAAY,GAAG,CAAC,EAC7B,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAY,GAAG,YAAY,CAC3C,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAY,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACxB,CAAC;QACD,cAAc,GAAG,QAAQ,CAAC;QAC1B,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,UAA6B;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;YAC5B,IAAI,GAAG,SAAS,CAAC;YACjB,YAAY,GAAG,QAAQ,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/values.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Value specs: the one vocabulary for a qualifier value and a command
|
|
3
|
+
* argument. Both are a word whose acceptable spellings come from somewhere,
|
|
4
|
+
* and there are three somewheres:
|
|
5
|
+
*
|
|
6
|
+
* - `enum` — a closed set the schema knows, so a wrong value is detectable
|
|
7
|
+
* here and worth a diagnostic.
|
|
8
|
+
* - `named` — names the app resolves (labels, statuses, members). The schema
|
|
9
|
+
* is static data that a server can share; the names live in the app's
|
|
10
|
+
* database and arrive through a provider at the point of use.
|
|
11
|
+
* - `free` — matched literally, with no set to check it against.
|
|
12
|
+
*/
|
|
13
|
+
export type ValueSpec = {
|
|
14
|
+
kind: "enum";
|
|
15
|
+
/** Canonical values, in the order help text lists them. */
|
|
16
|
+
values: readonly string[];
|
|
17
|
+
/** Extra spelling → canonical value; keys are lowercase. */
|
|
18
|
+
aliases?: Readonly<Record<string, string>>;
|
|
19
|
+
/** Values meaning something of their own: `@me`, `none`. */
|
|
20
|
+
special?: readonly string[];
|
|
21
|
+
hint?: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: "named";
|
|
24
|
+
/** Which provider answers for it. */
|
|
25
|
+
source: string;
|
|
26
|
+
special?: readonly string[];
|
|
27
|
+
hint?: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "free";
|
|
30
|
+
/** An optional provider, consulted for completion only. */
|
|
31
|
+
source?: string;
|
|
32
|
+
special?: readonly string[];
|
|
33
|
+
hint?: string;
|
|
34
|
+
};
|
|
35
|
+
export type ValueOption = {
|
|
36
|
+
value: string;
|
|
37
|
+
hint?: string;
|
|
38
|
+
};
|
|
39
|
+
export type ValueProvider =
|
|
40
|
+
/** Everything at once. `undefined` while it loads. */
|
|
41
|
+
{
|
|
42
|
+
options: readonly ValueOption[] | undefined;
|
|
43
|
+
}
|
|
44
|
+
/** Too many to list: asked per prefix. */
|
|
45
|
+
| {
|
|
46
|
+
search: (prefix: string, signal: AbortSignal) => Promise<readonly ValueOption[]>;
|
|
47
|
+
};
|
|
48
|
+
export type ValueProviders = Readonly<Record<string, ValueProvider>>;
|
|
49
|
+
/**
|
|
50
|
+
* How a value paints and whether a command line is broken. `unknown` paints
|
|
51
|
+
* like `valid`: flashing every value amber while a list loads and back is
|
|
52
|
+
* worse than being briefly quiet.
|
|
53
|
+
*/
|
|
54
|
+
export type ValueVerdict = "valid" | "special" | "invalid" | "unknown";
|
|
55
|
+
/** The special spelling as the spec writes it, matched case-insensitively. */
|
|
56
|
+
export declare function specialValue(spec: ValueSpec, value: string): string | null;
|
|
57
|
+
/** An enum value's canonical spelling; null for anything else. */
|
|
58
|
+
export declare function canonicalValue(spec: ValueSpec, value: string): string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Never fetches: a `search` provider cannot answer synchronously, so it is
|
|
61
|
+
* used for completion only and its values read as `unknown`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function valueVerdict(spec: ValueSpec, value: string, provider?: ValueProvider): ValueVerdict;
|
|
64
|
+
/** One verdict for a list of values, as a brace expansion paints. */
|
|
65
|
+
export declare function worstVerdict(verdicts: readonly ValueVerdict[]): ValueVerdict | null;
|
|
66
|
+
/** The provider a spec reads from; an enum never has one. */
|
|
67
|
+
export declare function providerOf(spec: ValueSpec, providers?: ValueProviders): ValueProvider | undefined;
|
|
68
|
+
/** What a did-you-mean may suggest: only spellings that would be accepted. */
|
|
69
|
+
export declare function suggestionCandidates(spec: ValueSpec, provider?: ValueProvider): string[];
|
|
70
|
+
//# sourceMappingURL=values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,4DAA4D;IAC5D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,aAAa;AACvB,sDAAsD;AACpD;IAAE,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAA;CAAE;AACjD,0CAA0C;GACxC;IACE,MAAM,EAAE,CACN,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;CACtC,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1E;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,aAAa,GACvB,YAAY,CAgBd;AASD,qEAAqE;AACrE,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,SAAS,YAAY,EAAE,GAChC,YAAY,GAAG,IAAI,CAQrB;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CACxB,IAAI,EAAE,SAAS,EACf,SAAS,CAAC,EAAE,cAAc,GACzB,aAAa,GAAG,SAAS,CAG3B;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,QAAQ,CAAC,EAAE,aAAa,GACvB,MAAM,EAAE,CAaV"}
|
package/dist/values.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Value specs: the one vocabulary for a qualifier value and a command
|
|
3
|
+
* argument. Both are a word whose acceptable spellings come from somewhere,
|
|
4
|
+
* and there are three somewheres:
|
|
5
|
+
*
|
|
6
|
+
* - `enum` — a closed set the schema knows, so a wrong value is detectable
|
|
7
|
+
* here and worth a diagnostic.
|
|
8
|
+
* - `named` — names the app resolves (labels, statuses, members). The schema
|
|
9
|
+
* is static data that a server can share; the names live in the app's
|
|
10
|
+
* database and arrive through a provider at the point of use.
|
|
11
|
+
* - `free` — matched literally, with no set to check it against.
|
|
12
|
+
*/
|
|
13
|
+
/** The special spelling as the spec writes it, matched case-insensitively. */
|
|
14
|
+
export function specialValue(spec, value) {
|
|
15
|
+
const lower = value.toLowerCase();
|
|
16
|
+
return spec.special?.find((s) => s.toLowerCase() === lower) ?? null;
|
|
17
|
+
}
|
|
18
|
+
/** An enum value's canonical spelling; null for anything else. */
|
|
19
|
+
export function canonicalValue(spec, value) {
|
|
20
|
+
if (spec.kind !== "enum")
|
|
21
|
+
return null;
|
|
22
|
+
const lower = value.toLowerCase();
|
|
23
|
+
const canonical = spec.values.find((v) => v.toLowerCase() === lower);
|
|
24
|
+
if (canonical !== undefined)
|
|
25
|
+
return canonical;
|
|
26
|
+
// An own-key check: a plain lookup would answer `constructor` from the prototype.
|
|
27
|
+
return spec.aliases !== undefined && Object.hasOwn(spec.aliases, lower)
|
|
28
|
+
? spec.aliases[lower]
|
|
29
|
+
: null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Never fetches: a `search` provider cannot answer synchronously, so it is
|
|
33
|
+
* used for completion only and its values read as `unknown`.
|
|
34
|
+
*/
|
|
35
|
+
export function valueVerdict(spec, value, provider) {
|
|
36
|
+
if (specialValue(spec, value) !== null)
|
|
37
|
+
return "special";
|
|
38
|
+
switch (spec.kind) {
|
|
39
|
+
case "enum":
|
|
40
|
+
return canonicalValue(spec, value) === null ? "invalid" : "valid";
|
|
41
|
+
case "named": {
|
|
42
|
+
if (provider === undefined || !("options" in provider))
|
|
43
|
+
return "unknown";
|
|
44
|
+
if (provider.options === undefined)
|
|
45
|
+
return "unknown";
|
|
46
|
+
const lower = value.toLowerCase();
|
|
47
|
+
return provider.options.some((o) => o.value.toLowerCase() === lower)
|
|
48
|
+
? "valid"
|
|
49
|
+
: "invalid";
|
|
50
|
+
}
|
|
51
|
+
case "free":
|
|
52
|
+
return "valid";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const VERDICT_RANK = {
|
|
56
|
+
valid: 0,
|
|
57
|
+
unknown: 1,
|
|
58
|
+
special: 2,
|
|
59
|
+
invalid: 3,
|
|
60
|
+
};
|
|
61
|
+
/** One verdict for a list of values, as a brace expansion paints. */
|
|
62
|
+
export function worstVerdict(verdicts) {
|
|
63
|
+
let worst = null;
|
|
64
|
+
for (const verdict of verdicts) {
|
|
65
|
+
if (worst === null || VERDICT_RANK[verdict] > VERDICT_RANK[worst]) {
|
|
66
|
+
worst = verdict;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return worst;
|
|
70
|
+
}
|
|
71
|
+
/** The provider a spec reads from; an enum never has one. */
|
|
72
|
+
export function providerOf(spec, providers) {
|
|
73
|
+
if (spec.kind === "enum" || spec.source === undefined)
|
|
74
|
+
return undefined;
|
|
75
|
+
return providers?.[spec.source];
|
|
76
|
+
}
|
|
77
|
+
/** What a did-you-mean may suggest: only spellings that would be accepted. */
|
|
78
|
+
export function suggestionCandidates(spec, provider) {
|
|
79
|
+
const special = spec.special ?? [];
|
|
80
|
+
switch (spec.kind) {
|
|
81
|
+
case "enum":
|
|
82
|
+
return [...spec.values, ...Object.keys(spec.aliases ?? {}), ...special];
|
|
83
|
+
case "named": {
|
|
84
|
+
const options = provider !== undefined && "options" in provider ? provider.options : [];
|
|
85
|
+
return [...(options ?? []).map((o) => o.value), ...special];
|
|
86
|
+
}
|
|
87
|
+
case "free":
|
|
88
|
+
return [...special];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orz/query",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Search query and slash-command grammars driven by an app's schema, with no runtime dependencies",
|
|
5
|
+
"license": "BSD-3-Clause",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/orzFly/ui.git",
|
|
9
|
+
"directory": "packages/query"
|
|
10
|
+
},
|
|
11
|
+
"type": "module",
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"@orz/source": "./src/index.ts",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/node": "^22.20.5",
|
|
28
|
+
"vitest": "^5.0.5"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json",
|
|
32
|
+
"typecheck": "tsc --noEmit",
|
|
33
|
+
"test": "vitest run"
|
|
34
|
+
}
|
|
6
35
|
}
|