deep-guards 1.1.0 → 1.3.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 +1 -1
- package/README.md +12 -7
- package/dist/compound.d.ts +2 -1
- package/dist/compound.js +73 -23
- package/dist/compound.js.map +1 -1
- package/dist/primitives.js +1 -3
- package/dist/primitives.js.map +1 -1
- package/eslint.config.js +3 -1
- package/package.json +17 -30
- package/src/compound.test.ts +254 -0
- package/src/compound.ts +121 -33
- package/src/errors.ts +1 -1
- package/src/helpers.ts +2 -2
- package/{tests → src}/macros.test.ts +6 -4
- package/src/macros.ts +4 -4
- package/{tests → src}/primitives.test.ts +2 -2
- package/src/primitives.ts +1 -1
- package/{tests → src}/structures.test.ts +9 -12
- package/src/structures.ts +18 -18
- package/src/types.ts +2 -3
- package/tsconfig.json +1 -0
- package/tsconfig.test.json +1 -4
- package/.yarn/plugins/@yarnpkg/plugin-typescript.cjs +0 -9
- package/.yarn/plugins/@yarnpkg/plugin-version.cjs +0 -523
- package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +0 -28
- package/.yarn/releases/yarn-3.8.2.cjs +0 -875
- package/babel.config.cjs +0 -6
- package/tests/compound.test.ts +0 -154
package/src/compound.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { objectKeys } from "./helpers.js";
|
|
2
2
|
|
|
3
|
-
import type { GuardSchemaOf } from "./helpers.js";
|
|
3
|
+
import type { GuardSchemaOf, ObjectKey } from "./helpers.js";
|
|
4
4
|
import type { Guard } from "./types.js";
|
|
5
5
|
|
|
6
6
|
export function isOptional<T>(guard: Guard<T>): Guard<T | undefined> {
|
|
7
7
|
if (typeof guard !== "function") {
|
|
8
8
|
throw new TypeError(
|
|
9
|
-
`isOptional expects a guard parameter. Got instead: ${guard}
|
|
9
|
+
`isOptional expects a guard parameter. Got instead: ${guard}`,
|
|
10
10
|
);
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -16,7 +16,7 @@ export function isOptional<T>(guard: Guard<T>): Guard<T | undefined> {
|
|
|
16
16
|
export function isNullable<T>(guard: Guard<T>): Guard<T | null | undefined> {
|
|
17
17
|
if (typeof guard !== "function") {
|
|
18
18
|
throw new TypeError(
|
|
19
|
-
`isNullable expects a guard parameter. Got instead: ${guard}
|
|
19
|
+
`isNullable expects a guard parameter. Got instead: ${guard}`,
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -25,7 +25,7 @@ export function isNullable<T>(guard: Guard<T>): Guard<T | null | undefined> {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export function isNonNullable<T extends NonNullable<unknown>>(
|
|
28
|
-
value: T | null | undefined
|
|
28
|
+
value: T | null | undefined,
|
|
29
29
|
): value is T {
|
|
30
30
|
return value != null;
|
|
31
31
|
}
|
|
@@ -33,7 +33,7 @@ export function isNonNullable<T extends NonNullable<unknown>>(
|
|
|
33
33
|
export function isNot<const N>(guard: Guard<N>) {
|
|
34
34
|
if (typeof guard !== "function") {
|
|
35
35
|
throw new TypeError(
|
|
36
|
-
`isNot expects a guard parameter. Got instead: ${guard}
|
|
36
|
+
`isNot expects a guard parameter. Got instead: ${guard}`,
|
|
37
37
|
);
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -41,7 +41,7 @@ export function isNot<const N>(guard: Guard<N>) {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export function isOneOf<
|
|
44
|
-
const T extends (string | number | boolean | symbol | null | undefined)[]
|
|
44
|
+
const T extends (string | number | boolean | symbol | null | undefined)[],
|
|
45
45
|
>(...values: T): Guard<T[number]> {
|
|
46
46
|
const valueSet = new Set(values);
|
|
47
47
|
return (value) => (valueSet.has as Guard<T[number]>)(value);
|
|
@@ -52,7 +52,7 @@ export function isUnionOf<T extends readonly unknown[]>(
|
|
|
52
52
|
): Guard<T[number]> {
|
|
53
53
|
if (guards.every((guard) => typeof guard !== "function")) {
|
|
54
54
|
throw new TypeError(
|
|
55
|
-
`isUnionOf expects N guard parameters. Got instead: ${guards}
|
|
55
|
+
`isUnionOf expects N guard parameters. Got instead: ${guards}`,
|
|
56
56
|
);
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -61,7 +61,7 @@ export function isUnionOf<T extends readonly unknown[]>(
|
|
|
61
61
|
|
|
62
62
|
type ArrayToIntersection<A extends readonly unknown[]> = A extends [
|
|
63
63
|
infer T,
|
|
64
|
-
...infer R
|
|
64
|
+
...infer R,
|
|
65
65
|
]
|
|
66
66
|
? T & ArrayToIntersection<R>
|
|
67
67
|
: unknown;
|
|
@@ -71,7 +71,7 @@ export function isIntersectionOf<T extends readonly unknown[]>(
|
|
|
71
71
|
): Guard<ArrayToIntersection<T>> {
|
|
72
72
|
if (guards.every((guard) => typeof guard !== "function")) {
|
|
73
73
|
throw new TypeError(
|
|
74
|
-
`isIntersectionOf expects N guard parameters. Got instead: ${guards}
|
|
74
|
+
`isIntersectionOf expects N guard parameters. Got instead: ${guards}`,
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -79,31 +79,119 @@ export function isIntersectionOf<T extends readonly unknown[]>(
|
|
|
79
79
|
guards.every((guard) => guard(value));
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
function
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
export function isExact<const T>(expected: T): Guard<T> {
|
|
83
|
+
// Primitive checks
|
|
84
|
+
if (typeof expected !== "object" || expected === null) {
|
|
85
|
+
// NaN check
|
|
86
|
+
if (typeof expected === "number" && Number.isNaN(expected)) {
|
|
87
|
+
return (value): value is T =>
|
|
88
|
+
typeof value === "number" && Number.isNaN(value);
|
|
89
|
+
}
|
|
90
|
+
return (value): value is T => value === expected;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Date checks
|
|
94
|
+
if (expected instanceof Date) {
|
|
95
|
+
return (value): value is T =>
|
|
96
|
+
value instanceof Date && expected.getTime() === value.getTime();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// RegExp checks
|
|
100
|
+
if (expected instanceof RegExp) {
|
|
101
|
+
return (value): value is T =>
|
|
102
|
+
value instanceof RegExp &&
|
|
103
|
+
expected.source === value.source &&
|
|
104
|
+
expected.flags === value.flags;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Error checks
|
|
108
|
+
if (expected instanceof Error) {
|
|
109
|
+
return (value): value is T =>
|
|
110
|
+
value instanceof Error &&
|
|
111
|
+
expected.name === value.name &&
|
|
112
|
+
expected.message === value.message;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Map checks
|
|
116
|
+
if (expected instanceof Map) {
|
|
117
|
+
const guards = Array.from(
|
|
118
|
+
expected
|
|
119
|
+
.entries()
|
|
120
|
+
.map(([k, v]) => [k, isExact(v)] as [string, Guard<unknown>]),
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
return (value): value is T =>
|
|
124
|
+
value instanceof Map &&
|
|
125
|
+
expected.size === value.size &&
|
|
126
|
+
guards.every(([k, guard]) => value.has(k) && guard(value.get(k)));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Set checks
|
|
130
|
+
if (expected instanceof Set) {
|
|
131
|
+
const guards = new Map(
|
|
132
|
+
expected.values().map((v): [unknown, Guard<unknown>] => [v, isExact(v)]),
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
return (value): value is T =>
|
|
136
|
+
value instanceof Set &&
|
|
137
|
+
expected.size === value.size &&
|
|
138
|
+
value.values().every((v) => guards.get(v)?.(v));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Typed Array checks
|
|
142
|
+
if (ArrayBuffer.isView(expected) && !(expected instanceof DataView)) {
|
|
143
|
+
const guards = Array.from(expected as unknown as ArrayLike<number>).map(
|
|
144
|
+
(v) => isExact(v),
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
return (value): value is T =>
|
|
148
|
+
ArrayBuffer.isView(value) &&
|
|
149
|
+
!(value instanceof DataView) &&
|
|
150
|
+
expected.constructor === value.constructor &&
|
|
151
|
+
(expected as unknown as ArrayLike<number>).length ===
|
|
152
|
+
(value as unknown as ArrayLike<number>).length &&
|
|
153
|
+
guards.every((guard, i) =>
|
|
154
|
+
guard((value as unknown as ArrayLike<number>)[i]),
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Array checks
|
|
159
|
+
if (Array.isArray(expected)) {
|
|
160
|
+
const guards = expected.map((v) => isExact(v));
|
|
161
|
+
|
|
162
|
+
return (value): value is T =>
|
|
163
|
+
Array.isArray(value) &&
|
|
164
|
+
expected.length === value.length &&
|
|
165
|
+
guards.every((guard, i) => guard(value[i]));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Object checks
|
|
169
|
+
const guards = objectKeys(expected).map(
|
|
170
|
+
(k) => [k, isExact(expected[k])] as [ObjectKey, Guard<unknown>],
|
|
88
171
|
);
|
|
89
|
-
}
|
|
90
172
|
|
|
91
|
-
|
|
173
|
+
function objectEntriesChecks(value: object): value is T & object {
|
|
174
|
+
const valueKeys = new Set(objectKeys(value) as ObjectKey[]);
|
|
175
|
+
return (
|
|
176
|
+
guards.length === valueKeys.size &&
|
|
177
|
+
guards.every(
|
|
178
|
+
([k, guard]) =>
|
|
179
|
+
valueKeys.has(k) && guard((value as Record<ObjectKey, unknown>)[k]),
|
|
180
|
+
)
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
92
184
|
return (value): value is T =>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
typeof expected === "object" &&
|
|
106
|
-
typeof value === "object" &&
|
|
107
|
-
!Array.isArray(value) &&
|
|
108
|
-
objectEntriesChecks(expected, value)));
|
|
185
|
+
typeof value === "object" &&
|
|
186
|
+
value != null &&
|
|
187
|
+
!Array.isArray(value) &&
|
|
188
|
+
objectKeys(value).length === guards.length &&
|
|
189
|
+
objectEntriesChecks(value);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
193
|
+
export function isInstance<C extends abstract new (...args: any) => unknown>(
|
|
194
|
+
cls: C,
|
|
195
|
+
): Guard<InstanceType<C>> {
|
|
196
|
+
return (value): value is InstanceType<C> => value instanceof cls;
|
|
109
197
|
}
|
package/src/errors.ts
CHANGED
package/src/helpers.ts
CHANGED
|
@@ -8,12 +8,12 @@ export type ObjectKey = string | number | symbol;
|
|
|
8
8
|
|
|
9
9
|
export const objectKeys = <K extends ObjectKey>(obj: Record<K, unknown>): K[] =>
|
|
10
10
|
(Object.getOwnPropertyNames(obj) as K[]).concat(
|
|
11
|
-
Object.getOwnPropertySymbols(obj) as K[]
|
|
11
|
+
Object.getOwnPropertySymbols(obj) as K[],
|
|
12
12
|
);
|
|
13
13
|
|
|
14
14
|
export function omit<O extends NonNullable<unknown>>(
|
|
15
15
|
obj: O,
|
|
16
|
-
key: keyof O
|
|
16
|
+
key: keyof O,
|
|
17
17
|
): { [K in keyof O as K extends typeof key ? never : K]: O[K] } {
|
|
18
18
|
const omitted = { ...obj };
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { describe, expect, it } from "
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
2
|
|
|
3
|
-
import { isDiscriminatedObjectOf
|
|
3
|
+
import { isDiscriminatedObjectOf } from "./macros.ts";
|
|
4
|
+
import { isString } from "./primitives.ts";
|
|
5
|
+
import { isObjectOf } from "./structures.ts";
|
|
4
6
|
|
|
5
7
|
describe("isDiscriminatedObjectOf", () => {
|
|
6
8
|
describe("no key override", () => {
|
|
7
9
|
const guard = isDiscriminatedObjectOf(
|
|
8
10
|
"foo",
|
|
9
|
-
isObjectOf({ bar: isString }, true)
|
|
11
|
+
isObjectOf({ bar: isString }, true),
|
|
10
12
|
);
|
|
11
13
|
|
|
12
14
|
it("succeeds for an object of the value", () => {
|
|
@@ -24,7 +26,7 @@ describe("isDiscriminatedObjectOf", () => {
|
|
|
24
26
|
const guard = isDiscriminatedObjectOf(
|
|
25
27
|
"foo",
|
|
26
28
|
isObjectOf({ bar: isString }, true),
|
|
27
|
-
"test"
|
|
29
|
+
"test",
|
|
28
30
|
);
|
|
29
31
|
|
|
30
32
|
it("succeeds for an object of the value", () => {
|
package/src/macros.ts
CHANGED
|
@@ -7,20 +7,20 @@ import type { Guard } from "./types.js";
|
|
|
7
7
|
|
|
8
8
|
export function isDiscriminatedObjectOf<
|
|
9
9
|
const T extends string,
|
|
10
|
-
O extends object
|
|
10
|
+
O extends object,
|
|
11
11
|
>(value: T, guard: Guard<O>): Guard<{ type: T } & O>;
|
|
12
12
|
export function isDiscriminatedObjectOf<
|
|
13
13
|
const T extends string,
|
|
14
14
|
O extends object,
|
|
15
|
-
const K extends ObjectKey
|
|
15
|
+
const K extends ObjectKey,
|
|
16
16
|
>(value: T, guard: Guard<O>, key: K): Guard<{ [S in K]: T } & O>;
|
|
17
17
|
export function isDiscriminatedObjectOf<
|
|
18
18
|
const T extends string,
|
|
19
|
-
O extends object
|
|
19
|
+
O extends object,
|
|
20
20
|
>(
|
|
21
21
|
value: T,
|
|
22
22
|
guard: Guard<O>,
|
|
23
|
-
key: ObjectKey = "type"
|
|
23
|
+
key: ObjectKey = "type",
|
|
24
24
|
): Guard<Record<ObjectKey, T> & O> {
|
|
25
25
|
const discriminatorGuard = isObjectOf({ [key]: isExact(value) }) as Guard<
|
|
26
26
|
Record<ObjectKey, T>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, expect, it } from "
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
isBoolean,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
isString,
|
|
10
10
|
isUndefined,
|
|
11
11
|
isUnknown,
|
|
12
|
-
} from "
|
|
12
|
+
} from "./primitives.ts";
|
|
13
13
|
|
|
14
14
|
describe("isUnknown", () => {
|
|
15
15
|
it("succeeds for any value", () => {
|
package/src/primitives.ts
CHANGED
|
@@ -20,6 +20,6 @@ export const isBoolean: Guard<boolean> = (value) =>
|
|
|
20
20
|
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
22
|
export const isFunction: Guard<(...args: any[]) => unknown> = (
|
|
23
|
-
value
|
|
23
|
+
value,
|
|
24
24
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
25
|
): value is (...args: any[]) => unknown => typeof value === "function";
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import { describe, expect, it } from "
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
2
|
|
|
3
|
+
import { isBoolean, isNumber, isString, isSymbol } from "./primitives.ts";
|
|
3
4
|
import {
|
|
4
5
|
isAnyArray,
|
|
5
6
|
isAnyRecord,
|
|
6
7
|
isArrayOf,
|
|
7
|
-
isBoolean,
|
|
8
|
-
isNumber,
|
|
9
8
|
isObjectOf,
|
|
10
9
|
isRecordOf,
|
|
11
|
-
isString,
|
|
12
|
-
isSymbol,
|
|
13
10
|
isTupleOf,
|
|
14
|
-
} from "
|
|
11
|
+
} from "./structures.ts";
|
|
15
12
|
|
|
16
13
|
describe("isAnyArray", () => {
|
|
17
14
|
it("succeeds for an array", () => {
|
|
@@ -84,7 +81,7 @@ describe("isObjectOf", () => {
|
|
|
84
81
|
[barSymbol]: 1,
|
|
85
82
|
baz: { qux: Symbol("world!") },
|
|
86
83
|
quux: "this should not be checked",
|
|
87
|
-
})
|
|
84
|
+
}),
|
|
88
85
|
).toBe(true);
|
|
89
86
|
});
|
|
90
87
|
|
|
@@ -94,7 +91,7 @@ describe("isObjectOf", () => {
|
|
|
94
91
|
foo: "hello",
|
|
95
92
|
[barSymbol]: "FAIL",
|
|
96
93
|
baz: { qux: Symbol("world!") },
|
|
97
|
-
})
|
|
94
|
+
}),
|
|
98
95
|
).toBe(false);
|
|
99
96
|
expect(guard(1)).toBe(false);
|
|
100
97
|
});
|
|
@@ -110,7 +107,7 @@ describe("isObjectOf", () => {
|
|
|
110
107
|
qux: isSymbol,
|
|
111
108
|
}),
|
|
112
109
|
},
|
|
113
|
-
true
|
|
110
|
+
true,
|
|
114
111
|
);
|
|
115
112
|
|
|
116
113
|
it("succeeds for an object of the value", () => {
|
|
@@ -119,7 +116,7 @@ describe("isObjectOf", () => {
|
|
|
119
116
|
foo: "hello",
|
|
120
117
|
[barSymbol]: 1,
|
|
121
118
|
baz: { qux: Symbol("world!") },
|
|
122
|
-
})
|
|
119
|
+
}),
|
|
123
120
|
).toBe(true);
|
|
124
121
|
});
|
|
125
122
|
|
|
@@ -130,14 +127,14 @@ describe("isObjectOf", () => {
|
|
|
130
127
|
[barSymbol]: 1,
|
|
131
128
|
baz: { qux: Symbol("world!") },
|
|
132
129
|
quux: "this should be checked",
|
|
133
|
-
})
|
|
130
|
+
}),
|
|
134
131
|
).toBe(false);
|
|
135
132
|
expect(
|
|
136
133
|
guard({
|
|
137
134
|
foo: "hello",
|
|
138
135
|
[barSymbol]: "FAIL",
|
|
139
136
|
baz: { qux: Symbol("world!") },
|
|
140
|
-
})
|
|
137
|
+
}),
|
|
141
138
|
).toBe(false);
|
|
142
139
|
expect(guard(1)).toBe(false);
|
|
143
140
|
});
|
package/src/structures.ts
CHANGED
|
@@ -6,14 +6,14 @@ import type { Guard } from "./types.js";
|
|
|
6
6
|
export const isAnyArray: Guard<unknown[]> = (value) => Array.isArray(value);
|
|
7
7
|
|
|
8
8
|
export const isAnyRecord: Guard<Record<ObjectKey, unknown>> = (
|
|
9
|
-
value
|
|
9
|
+
value,
|
|
10
10
|
): value is Record<ObjectKey, unknown> =>
|
|
11
11
|
value != null && typeof value === "object" && !Array.isArray(value);
|
|
12
12
|
|
|
13
13
|
export function isArrayOf<T>(guard: Guard<T>): Guard<T[]> {
|
|
14
14
|
if (typeof guard !== "function") {
|
|
15
15
|
throw new TypeError(
|
|
16
|
-
`isArrayOf expects a guard parameter. Got instead: ${guard}
|
|
16
|
+
`isArrayOf expects a guard parameter. Got instead: ${guard}`,
|
|
17
17
|
);
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -26,8 +26,8 @@ export function isTupleOf<T extends readonly unknown[]>(
|
|
|
26
26
|
if (tupleGuards.some((guard) => typeof guard !== "function")) {
|
|
27
27
|
throw new TypeError(
|
|
28
28
|
`isTupleOf expects guard parameters. Got instead: ${JSON.stringify(
|
|
29
|
-
tupleGuards
|
|
30
|
-
)}
|
|
29
|
+
tupleGuards,
|
|
30
|
+
)}`,
|
|
31
31
|
);
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -38,23 +38,23 @@ export function isTupleOf<T extends readonly unknown[]>(
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
export function isRecordOf<K extends ObjectKey>(
|
|
41
|
-
keyGuard: Guard<K
|
|
41
|
+
keyGuard: Guard<K>,
|
|
42
42
|
): Guard<Record<K, unknown>>;
|
|
43
43
|
export function isRecordOf<K extends ObjectKey, V>(
|
|
44
44
|
keyGuard: Guard<K>,
|
|
45
|
-
valueGuard: Guard<V
|
|
45
|
+
valueGuard: Guard<V>,
|
|
46
46
|
): Guard<Record<K, V>>;
|
|
47
47
|
export function isRecordOf<K extends ObjectKey, V>(
|
|
48
48
|
keyGuard: Guard<K>,
|
|
49
|
-
valueGuard?: Guard<V
|
|
49
|
+
valueGuard?: Guard<V>,
|
|
50
50
|
): Guard<Record<K, V>> {
|
|
51
51
|
if (typeof keyGuard !== "function") {
|
|
52
52
|
throw new TypeError(
|
|
53
|
-
`isRecordOf keyGuard expects a guard parameter. Got instead: ${keyGuard}
|
|
53
|
+
`isRecordOf keyGuard expects a guard parameter. Got instead: ${keyGuard}`,
|
|
54
54
|
);
|
|
55
55
|
} else if (valueGuard != null && typeof valueGuard !== "function") {
|
|
56
56
|
throw new TypeError(
|
|
57
|
-
`isRecordOf valueGuard expects an optional guard parameter. Got instead: ${valueGuard}
|
|
57
|
+
`isRecordOf valueGuard expects an optional guard parameter. Got instead: ${valueGuard}`,
|
|
58
58
|
);
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -63,25 +63,25 @@ export function isRecordOf<K extends ObjectKey, V>(
|
|
|
63
63
|
typeof value === "object" &&
|
|
64
64
|
!Array.isArray(value) &&
|
|
65
65
|
objectKeys(value).every(
|
|
66
|
-
(key) => keyGuard(key) && (valueGuard?.(value[key]) ?? true)
|
|
66
|
+
(key) => keyGuard(key) && (valueGuard?.(value[key]) ?? true),
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
type IsObjectOfGuard<O extends object> = O extends unknown[]
|
|
71
71
|
? never
|
|
72
72
|
: // eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
{} extends O
|
|
74
|
+
? never
|
|
75
|
+
: Guard<O>;
|
|
76
76
|
|
|
77
77
|
export function isObjectOf<O extends object>(
|
|
78
78
|
schema: GuardSchemaOf<O>,
|
|
79
|
-
exactKeys: boolean = false
|
|
79
|
+
exactKeys: boolean = false,
|
|
80
80
|
): IsObjectOfGuard<O> {
|
|
81
81
|
const schemaUnknown: unknown = schema;
|
|
82
82
|
if (schemaUnknown == null || typeof schemaUnknown !== "object") {
|
|
83
83
|
throw new TypeError(
|
|
84
|
-
`isObjectOf expects a guard schema object. Got instead: ${schemaUnknown}
|
|
84
|
+
`isObjectOf expects a guard schema object. Got instead: ${schemaUnknown}`,
|
|
85
85
|
);
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -92,8 +92,8 @@ export function isObjectOf<O extends object>(
|
|
|
92
92
|
) {
|
|
93
93
|
throw new TypeError(
|
|
94
94
|
`isObjectOf expects a guard schema object. Got instead ${JSON.stringify(
|
|
95
|
-
schema
|
|
96
|
-
)}
|
|
95
|
+
schema,
|
|
96
|
+
)}`,
|
|
97
97
|
);
|
|
98
98
|
} else if (schemaKeys.length === 0) {
|
|
99
99
|
throw new Error("isObjectOf received an empty schema");
|
|
@@ -105,6 +105,6 @@ export function isObjectOf<O extends object>(
|
|
|
105
105
|
!Array.isArray(value) &&
|
|
106
106
|
(!exactKeys || schemaKeys.length === objectKeys(value).length) &&
|
|
107
107
|
schemaKeys.every(
|
|
108
|
-
(key) => key in value && schema[key]((value as O)[key])
|
|
108
|
+
(key) => key in value && schema[key]((value as O)[key]),
|
|
109
109
|
)) as IsObjectOfGuard<O>;
|
|
110
110
|
}
|
package/src/types.ts
CHANGED
package/tsconfig.json
CHANGED
package/tsconfig.test.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
//prettier-ignore
|
|
3
|
-
module.exports = {
|
|
4
|
-
name: "@yarnpkg/plugin-typescript",
|
|
5
|
-
factory: function (require) {
|
|
6
|
-
var plugin=(()=>{var Ft=Object.create,H=Object.defineProperty,Bt=Object.defineProperties,Kt=Object.getOwnPropertyDescriptor,zt=Object.getOwnPropertyDescriptors,Gt=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,$t=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable;var Re=(e,t,r)=>t in e?H(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u=(e,t)=>{for(var r in t||(t={}))ne.call(t,r)&&Re(e,r,t[r]);if(Q)for(var r of Q(t))De.call(t,r)&&Re(e,r,t[r]);return e},g=(e,t)=>Bt(e,zt(t)),Lt=e=>H(e,"__esModule",{value:!0});var R=(e,t)=>{var r={};for(var s in e)ne.call(e,s)&&t.indexOf(s)<0&&(r[s]=e[s]);if(e!=null&&Q)for(var s of Q(e))t.indexOf(s)<0&&De.call(e,s)&&(r[s]=e[s]);return r};var I=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vt=(e,t)=>{for(var r in t)H(e,r,{get:t[r],enumerable:!0})},Qt=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Gt(t))!ne.call(e,s)&&s!=="default"&&H(e,s,{get:()=>t[s],enumerable:!(r=Kt(t,s))||r.enumerable});return e},C=e=>Qt(Lt(H(e!=null?Ft($t(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var xe=I(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});function _(e){let t=[...e.caches],r=t.shift();return r===void 0?ve():{get(s,n,a={miss:()=>Promise.resolve()}){return r.get(s,n,a).catch(()=>_({caches:t}).get(s,n,a))},set(s,n){return r.set(s,n).catch(()=>_({caches:t}).set(s,n))},delete(s){return r.delete(s).catch(()=>_({caches:t}).delete(s))},clear(){return r.clear().catch(()=>_({caches:t}).clear())}}}function ve(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(n=>Promise.all([n,r.miss(n)])).then(([n])=>n)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}J.createFallbackableCache=_;J.createNullCache=ve});var Ee=I(($s,qe)=>{qe.exports=xe()});var Te=I(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});function Jt(e={serializable:!0}){let t={};return{get(r,s,n={miss:()=>Promise.resolve()}){let a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);let o=s(),d=n&&n.miss||(()=>Promise.resolve());return o.then(y=>d(y)).then(()=>o)},set(r,s){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}ae.createInMemoryCache=Jt});var we=I((Vs,Me)=>{Me.exports=Te()});var Ce=I(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});function Xt(e,t,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===oe.WithinHeaders?s:{}},queryParameters(){return e===oe.WithinQueryParameters?s:{}}}}function Yt(e){let t=0,r=()=>(t++,new Promise(s=>{setTimeout(()=>{s(e(r))},Math.min(100*t,1e3))}));return e(r)}function ke(e,t=(r,s)=>Promise.resolve()){return Object.assign(e,{wait(r){return ke(e.then(s=>Promise.all([t(s,r),s])).then(s=>s[1]))}})}function Zt(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),s=e[t];e[t]=e[r],e[r]=s}return e}function er(e,t){return Object.keys(t!==void 0?t:{}).forEach(r=>{e[r]=t[r](e)}),e}function tr(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var rr="4.2.0",sr=e=>()=>e.transporter.requester.destroy(),oe={WithinQueryParameters:0,WithinHeaders:1};M.AuthMode=oe;M.addMethods=er;M.createAuth=Xt;M.createRetryablePromise=Yt;M.createWaitablePromise=ke;M.destroy=sr;M.encode=tr;M.shuffle=Zt;M.version=rr});var F=I((Js,Ue)=>{Ue.exports=Ce()});var Ne=I(ie=>{"use strict";Object.defineProperty(ie,"__esModule",{value:!0});var nr={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};ie.MethodEnum=nr});var B=I((Ys,We)=>{We.exports=Ne()});var Ze=I(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});var He=B();function ce(e,t){let r=e||{},s=r.data||{};return Object.keys(r).forEach(n=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(n)===-1&&(s[n]=r[n])}),{data:Object.entries(s).length>0?s:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var X={Read:1,Write:2,Any:3},U={Up:1,Down:2,Timeouted:3},_e=2*60*1e3;function ue(e,t=U.Up){return g(u({},e),{status:t,lastUpdate:Date.now()})}function Fe(e){return e.status===U.Up||Date.now()-e.lastUpdate>_e}function Be(e){return e.status===U.Timeouted&&Date.now()-e.lastUpdate<=_e}function le(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||X.Any}}function ar(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(ue(r))))).then(r=>{let s=r.filter(d=>Fe(d)),n=r.filter(d=>Be(d)),a=[...s,...n],o=a.length>0?a.map(d=>le(d)):t;return{getTimeout(d,y){return(n.length===0&&d===0?1:n.length+3+d)*y},statelessHosts:o}})}var or=({isTimedOut:e,status:t})=>!e&&~~t==0,ir=e=>{let t=e.status;return e.isTimedOut||or(e)||~~(t/100)!=2&&~~(t/100)!=4},cr=({status:e})=>~~(e/100)==2,ur=(e,t)=>ir(e)?t.onRetry(e):cr(e)?t.onSucess(e):t.onFail(e);function Qe(e,t,r,s){let n=[],a=$e(r,s),o=Le(e,s),d=r.method,y=r.method!==He.MethodEnum.Get?{}:u(u({},r.data),s.data),b=u(u(u({"x-algolia-agent":e.userAgent.value},e.queryParameters),y),s.queryParameters),f=0,p=(h,S)=>{let O=h.pop();if(O===void 0)throw Ve(de(n));let P={data:a,headers:o,method:d,url:Ge(O,r.path,b),connectTimeout:S(f,e.timeouts.connect),responseTimeout:S(f,s.timeout)},x=j=>{let T={request:P,response:j,host:O,triesLeft:h.length};return n.push(T),T},v={onSucess:j=>Ke(j),onRetry(j){let T=x(j);return j.isTimedOut&&f++,Promise.all([e.logger.info("Retryable failure",pe(T)),e.hostsCache.set(O,ue(O,j.isTimedOut?U.Timeouted:U.Down))]).then(()=>p(h,S))},onFail(j){throw x(j),ze(j,de(n))}};return e.requester.send(P).then(j=>ur(j,v))};return ar(e.hostsCache,t).then(h=>p([...h.statelessHosts].reverse(),h.getTimeout))}function lr(e){let{hostsCache:t,logger:r,requester:s,requestsCache:n,responsesCache:a,timeouts:o,userAgent:d,hosts:y,queryParameters:b,headers:f}=e,p={hostsCache:t,logger:r,requester:s,requestsCache:n,responsesCache:a,timeouts:o,userAgent:d,headers:f,queryParameters:b,hosts:y.map(h=>le(h)),read(h,S){let O=ce(S,p.timeouts.read),P=()=>Qe(p,p.hosts.filter(j=>(j.accept&X.Read)!=0),h,O);if((O.cacheable!==void 0?O.cacheable:h.cacheable)!==!0)return P();let v={request:h,mappedRequestOptions:O,transporter:{queryParameters:p.queryParameters,headers:p.headers}};return p.responsesCache.get(v,()=>p.requestsCache.get(v,()=>p.requestsCache.set(v,P()).then(j=>Promise.all([p.requestsCache.delete(v),j]),j=>Promise.all([p.requestsCache.delete(v),Promise.reject(j)])).then(([j,T])=>T)),{miss:j=>p.responsesCache.set(v,j)})},write(h,S){return Qe(p,p.hosts.filter(O=>(O.accept&X.Write)!=0),h,ce(S,p.timeouts.write))}};return p}function dr(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let s=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(s)===-1&&(t.value=`${t.value}${s}`),t}};return t}function Ke(e){try{return JSON.parse(e.content)}catch(t){throw Je(t.message,e)}}function ze({content:e,status:t},r){let s=e;try{s=JSON.parse(e).message}catch(n){}return Xe(s,t,r)}function pr(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}function Ge(e,t,r){let s=Ye(r),n=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return s.length&&(n+=`?${s}`),n}function Ye(e){let t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>pr("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function $e(e,t){if(e.method===He.MethodEnum.Get||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:u(u({},e.data),t.data);return JSON.stringify(r)}function Le(e,t){let r=u(u({},e.headers),t.headers),s={};return Object.keys(r).forEach(n=>{let a=r[n];s[n.toLowerCase()]=a}),s}function de(e){return e.map(t=>pe(t))}function pe(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return g(u({},e),{request:g(u({},e.request),{headers:u(u({},e.request.headers),t)})})}function Xe(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Je(e,t){return{name:"DeserializationError",message:e,response:t}}function Ve(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:e}}A.CallEnum=X;A.HostStatusEnum=U;A.createApiError=Xe;A.createDeserializationError=Je;A.createMappedRequestOptions=ce;A.createRetryError=Ve;A.createStatefulHost=ue;A.createStatelessHost=le;A.createTransporter=lr;A.createUserAgent=dr;A.deserializeFailure=ze;A.deserializeSuccess=Ke;A.isStatefulHostTimeouted=Be;A.isStatefulHostUp=Fe;A.serializeData=$e;A.serializeHeaders=Le;A.serializeQueryParameters=Ye;A.serializeUrl=Ge;A.stackFrameWithoutCredentials=pe;A.stackTraceWithoutCredentials=de});var K=I((en,et)=>{et.exports=Ze()});var tt=I(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});var N=F(),mr=K(),z=B(),hr=e=>{let t=e.region||"us",r=N.createAuth(N.AuthMode.WithinHeaders,e.appId,e.apiKey),s=mr.createTransporter(g(u({hosts:[{url:`analytics.${t}.algolia.com`}]},e),{headers:u(g(u({},r.headers()),{"content-type":"application/json"}),e.headers),queryParameters:u(u({},r.queryParameters()),e.queryParameters)})),n=e.appId;return N.addMethods({appId:n,transporter:s},e.methods)},yr=e=>(t,r)=>e.transporter.write({method:z.MethodEnum.Post,path:"2/abtests",data:t},r),gr=e=>(t,r)=>e.transporter.write({method:z.MethodEnum.Delete,path:N.encode("2/abtests/%s",t)},r),fr=e=>(t,r)=>e.transporter.read({method:z.MethodEnum.Get,path:N.encode("2/abtests/%s",t)},r),br=e=>t=>e.transporter.read({method:z.MethodEnum.Get,path:"2/abtests"},t),Pr=e=>(t,r)=>e.transporter.write({method:z.MethodEnum.Post,path:N.encode("2/abtests/%s/stop",t)},r);w.addABTest=yr;w.createAnalyticsClient=hr;w.deleteABTest=gr;w.getABTest=fr;w.getABTests=br;w.stopABTest=Pr});var st=I((rn,rt)=>{rt.exports=tt()});var at=I(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});var me=F(),jr=K(),nt=B(),Or=e=>{let t=e.region||"us",r=me.createAuth(me.AuthMode.WithinHeaders,e.appId,e.apiKey),s=jr.createTransporter(g(u({hosts:[{url:`recommendation.${t}.algolia.com`}]},e),{headers:u(g(u({},r.headers()),{"content-type":"application/json"}),e.headers),queryParameters:u(u({},r.queryParameters()),e.queryParameters)}));return me.addMethods({appId:e.appId,transporter:s},e.methods)},Ir=e=>t=>e.transporter.read({method:nt.MethodEnum.Get,path:"1/strategies/personalization"},t),Ar=e=>(t,r)=>e.transporter.write({method:nt.MethodEnum.Post,path:"1/strategies/personalization",data:t},r);G.createRecommendationClient=Or;G.getPersonalizationStrategy=Ir;G.setPersonalizationStrategy=Ar});var it=I((nn,ot)=>{ot.exports=at()});var jt=I(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var l=F(),q=K(),m=B(),Sr=require("crypto");function Y(e){let t=r=>e.request(r).then(s=>{if(e.batch!==void 0&&e.batch(s.hits),!e.shouldStop(s))return s.cursor?t({cursor:s.cursor}):t({page:(r.page||0)+1})});return t({})}var Dr=e=>{let t=e.appId,r=l.createAuth(e.authMode!==void 0?e.authMode:l.AuthMode.WithinHeaders,t,e.apiKey),s=q.createTransporter(g(u({hosts:[{url:`${t}-dsn.algolia.net`,accept:q.CallEnum.Read},{url:`${t}.algolia.net`,accept:q.CallEnum.Write}].concat(l.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}]))},e),{headers:u(g(u({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:u(u({},r.queryParameters()),e.queryParameters)})),n={transporter:s,appId:t,addAlgoliaAgent(a,o){s.userAgent.add({segment:a,version:o})},clearCache(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(()=>{})}};return l.addMethods(n,e.methods)};function ct(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function ut(){return{name:"ObjectNotFoundError",message:"Object not found."}}function lt(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Rr=e=>(t,r)=>{let d=r||{},{queryParameters:s}=d,n=R(d,["queryParameters"]),a=u({acl:t},s!==void 0?{queryParameters:s}:{}),o=(y,b)=>l.createRetryablePromise(f=>$(e)(y.key,b).catch(p=>{if(p.status!==404)throw p;return f()}));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:"1/keys",data:a},n),o)},vr=e=>(t,r,s)=>{let n=q.createMappedRequestOptions(s);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:m.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},n)},xr=e=>(t,r,s)=>e.transporter.write({method:m.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},s),Z=e=>(t,r,s)=>{let n=(a,o)=>L(e)(t,{methods:{waitTask:D}}).waitTask(a.taskID,o);return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},s),n)},qr=e=>(t,r,s)=>Z(e)(t,r,g(u({},s),{scope:[ee.Rules]})),Er=e=>(t,r,s)=>Z(e)(t,r,g(u({},s),{scope:[ee.Settings]})),Tr=e=>(t,r,s)=>Z(e)(t,r,g(u({},s),{scope:[ee.Synonyms]})),Mr=e=>(t,r)=>{let s=(n,a)=>l.createRetryablePromise(o=>$(e)(t,a).then(o).catch(d=>{if(d.status!==404)throw d}));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/keys/%s",t)},r),s)},wr=()=>(e,t)=>{let r=q.serializeQueryParameters(t),s=Sr.createHmac("sha256",e).update(r).digest("hex");return Buffer.from(s+r).toString("base64")},$=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/keys/%s",t)},r),kr=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/logs"},t),Cr=()=>e=>{let t=Buffer.from(e,"base64").toString("ascii"),r=/validUntil=(\d+)/,s=t.match(r);if(s===null)throw lt();return parseInt(s[1],10)-Math.round(new Date().getTime()/1e3)},Ur=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters/mapping/top"},t),Nr=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/clusters/mapping/%s",t)},r),Wr=e=>t=>{let n=t||{},{retrieveMappings:r}=n,s=R(n,["retrieveMappings"]);return r===!0&&(s.getClusters=!0),e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters/mapping/pending"},s)},L=e=>(t,r={})=>{let s={transporter:e.transporter,appId:e.appId,indexName:t};return l.addMethods(s,r.methods)},Hr=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/keys"},t),_r=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters"},t),Fr=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/indexes"},t),Br=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:"1/clusters/mapping"},t),Kr=e=>(t,r,s)=>{let n=(a,o)=>L(e)(t,{methods:{waitTask:D}}).waitTask(a.taskID,o);return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},s),n)},zr=e=>(t,r)=>{let s=(n,a)=>Promise.all(Object.keys(n.taskID).map(o=>L(e)(o,{methods:{waitTask:D}}).waitTask(n.taskID[o],a)));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:t}},r),s)},Gr=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},r),$r=e=>(t,r)=>{let s=t.map(n=>g(u({},n),{params:q.serializeQueryParameters(n.params||{})}));return e.transporter.read({method:m.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:s},cacheable:!0},r)},Lr=e=>(t,r)=>Promise.all(t.map(s=>{let d=s.params,{facetName:n,facetQuery:a}=d,o=R(d,["facetName","facetQuery"]);return L(e)(s.indexName,{methods:{searchForFacetValues:dt}}).searchForFacetValues(n,a,u(u({},r),o))})),Vr=e=>(t,r)=>{let s=q.createMappedRequestOptions(r);return s.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:m.MethodEnum.Delete,path:"1/clusters/mapping"},s)},Qr=e=>(t,r)=>{let s=(n,a)=>l.createRetryablePromise(o=>$(e)(t,a).catch(d=>{if(d.status!==404)throw d;return o()}));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/keys/%s/restore",t)},r),s)},Jr=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:t}},r),Xr=e=>(t,r)=>{let s=Object.assign({},r),f=r||{},{queryParameters:n}=f,a=R(f,["queryParameters"]),o=n?{queryParameters:n}:{},d=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],y=p=>Object.keys(s).filter(h=>d.indexOf(h)!==-1).every(h=>p[h]===s[h]),b=(p,h)=>l.createRetryablePromise(S=>$(e)(t,h).then(O=>y(O)?Promise.resolve():S()));return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Put,path:l.encode("1/keys/%s",t),data:o},a),b)},pt=e=>(t,r)=>{let s=(n,a)=>D(e)(n.taskID,a);return l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),s)},Yr=e=>t=>Y(g(u({},t),{shouldStop:r=>r.cursor===void 0,request:r=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/browse",e.indexName),data:r},t)})),Zr=e=>t=>{let r=u({hitsPerPage:1e3},t);return Y(g(u({},r),{shouldStop:s=>s.hits.length<r.hitsPerPage,request(s){return mt(e)("",u(u({},r),s)).then(n=>g(u({},n),{hits:n.hits.map(a=>(delete a._highlightResult,a))}))}}))},es=e=>t=>{let r=u({hitsPerPage:1e3},t);return Y(g(u({},r),{shouldStop:s=>s.hits.length<r.hitsPerPage,request(s){return ht(e)("",u(u({},r),s)).then(n=>g(u({},n),{hits:n.hits.map(a=>(delete a._highlightResult,a))}))}}))},te=e=>(t,r,s)=>{let y=s||{},{batchSize:n}=y,a=R(y,["batchSize"]),o={taskIDs:[],objectIDs:[]},d=(b=0)=>{let f=[],p;for(p=b;p<t.length&&(f.push(t[p]),f.length!==(n||1e3));p++);return f.length===0?Promise.resolve(o):pt(e)(f.map(h=>({action:r,body:h})),a).then(h=>(o.objectIDs=o.objectIDs.concat(h.objectIDs),o.taskIDs.push(h.taskID),p++,d(p)))};return l.createWaitablePromise(d(),(b,f)=>Promise.all(b.taskIDs.map(p=>D(e)(p,f))))},ts=e=>t=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/clear",e.indexName)},t),(r,s)=>D(e)(r.taskID,s)),rs=e=>t=>{let a=t||{},{forwardToReplicas:r}=a,s=R(a,["forwardToReplicas"]),n=q.createMappedRequestOptions(s);return r&&(n.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/rules/clear",e.indexName)},n),(o,d)=>D(e)(o.taskID,d))},ss=e=>t=>{let a=t||{},{forwardToReplicas:r}=a,s=R(a,["forwardToReplicas"]),n=q.createMappedRequestOptions(s);return r&&(n.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/synonyms/clear",e.indexName)},n),(o,d)=>D(e)(o.taskID,d))},ns=e=>(t,r)=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(s,n)=>D(e)(s.taskID,n)),as=e=>t=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/indexes/%s",e.indexName)},t),(r,s)=>D(e)(r.taskID,s)),os=e=>(t,r)=>l.createWaitablePromise(yt(e)([t],r).then(s=>({taskID:s.taskIDs[0]})),(s,n)=>D(e)(s.taskID,n)),yt=e=>(t,r)=>{let s=t.map(n=>({objectID:n}));return te(e)(s,k.DeleteObject,r)},is=e=>(t,r)=>{let o=r||{},{forwardToReplicas:s}=o,n=R(o,["forwardToReplicas"]),a=q.createMappedRequestOptions(n);return s&&(a.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/indexes/%s/rules/%s",e.indexName,t)},a),(d,y)=>D(e)(d.taskID,y))},cs=e=>(t,r)=>{let o=r||{},{forwardToReplicas:s}=o,n=R(o,["forwardToReplicas"]),a=q.createMappedRequestOptions(n);return s&&(a.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Delete,path:l.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},a),(d,y)=>D(e)(d.taskID,y))},us=e=>t=>gt(e)(t).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),ls=e=>(t,r)=>{let y=r||{},{query:s,paginate:n}=y,a=R(y,["query","paginate"]),o=0,d=()=>ft(e)(s||"",g(u({},a),{page:o})).then(b=>{for(let[f,p]of Object.entries(b.hits))if(t(p))return{object:p,position:parseInt(f,10),page:o};if(o++,n===!1||o>=b.nbPages)throw ut();return d()});return d()},ds=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/%s",e.indexName,t)},r),ps=()=>(e,t)=>{for(let[r,s]of Object.entries(e.hits))if(s.objectID===t)return parseInt(r,10);return-1},ms=e=>(t,r)=>{let o=r||{},{attributesToRetrieve:s}=o,n=R(o,["attributesToRetrieve"]),a=t.map(d=>u({indexName:e.indexName,objectID:d},s?{attributesToRetrieve:s}:{}));return e.transporter.read({method:m.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:a}},n)},hs=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/rules/%s",e.indexName,t)},r),gt=e=>t=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),ys=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},r),bt=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Get,path:l.encode("1/indexes/%s/task/%s",e.indexName,t.toString())},r),gs=e=>(t,r)=>l.createWaitablePromise(Pt(e)([t],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,n)=>D(e)(s.taskID,n)),Pt=e=>(t,r)=>{let o=r||{},{createIfNotExists:s}=o,n=R(o,["createIfNotExists"]),a=s?k.PartialUpdateObject:k.PartialUpdateObjectNoCreate;return te(e)(t,a,n)},fs=e=>(t,r)=>{let O=r||{},{safe:s,autoGenerateObjectIDIfNotExist:n,batchSize:a}=O,o=R(O,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),d=(P,x,v,j)=>l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/operation",P),data:{operation:v,destination:x}},j),(T,V)=>D(e)(T.taskID,V)),y=Math.random().toString(36).substring(7),b=`${e.indexName}_tmp_${y}`,f=he({appId:e.appId,transporter:e.transporter,indexName:b}),p=[],h=d(e.indexName,b,"copy",g(u({},o),{scope:["settings","synonyms","rules"]}));p.push(h);let S=(s?h.wait(o):h).then(()=>{let P=f(t,g(u({},o),{autoGenerateObjectIDIfNotExist:n,batchSize:a}));return p.push(P),s?P.wait(o):P}).then(()=>{let P=d(b,e.indexName,"move",o);return p.push(P),s?P.wait(o):P}).then(()=>Promise.all(p)).then(([P,x,v])=>({objectIDs:x.objectIDs,taskIDs:[P.taskID,...x.taskIDs,v.taskID]}));return l.createWaitablePromise(S,(P,x)=>Promise.all(p.map(v=>v.wait(x))))},bs=e=>(t,r)=>ye(e)(t,g(u({},r),{clearExistingRules:!0})),Ps=e=>(t,r)=>ge(e)(t,g(u({},r),{replaceExistingSynonyms:!0})),js=e=>(t,r)=>l.createWaitablePromise(he(e)([t],r).then(s=>({objectID:s.objectIDs[0],taskID:s.taskIDs[0]})),(s,n)=>D(e)(s.taskID,n)),he=e=>(t,r)=>{let o=r||{},{autoGenerateObjectIDIfNotExist:s}=o,n=R(o,["autoGenerateObjectIDIfNotExist"]),a=s?k.AddObject:k.UpdateObject;if(a===k.UpdateObject){for(let d of t)if(d.objectID===void 0)return l.createWaitablePromise(Promise.reject(ct()))}return te(e)(t,a,n)},Os=e=>(t,r)=>ye(e)([t],r),ye=e=>(t,r)=>{let d=r||{},{forwardToReplicas:s,clearExistingRules:n}=d,a=R(d,["forwardToReplicas","clearExistingRules"]),o=q.createMappedRequestOptions(a);return s&&(o.queryParameters.forwardToReplicas=1),n&&(o.queryParameters.clearExistingRules=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/rules/batch",e.indexName),data:t},o),(y,b)=>D(e)(y.taskID,b))},Is=e=>(t,r)=>ge(e)([t],r),ge=e=>(t,r)=>{let d=r||{},{forwardToReplicas:s,replaceExistingSynonyms:n}=d,a=R(d,["forwardToReplicas","replaceExistingSynonyms"]),o=q.createMappedRequestOptions(a);return s&&(o.queryParameters.forwardToReplicas=1),n&&(o.queryParameters.replaceExistingSynonyms=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/synonyms/batch",e.indexName),data:t},o),(y,b)=>D(e)(y.taskID,b))},ft=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),dt=e=>(t,r,s)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},s),mt=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r),ht=e=>(t,r)=>e.transporter.read({method:m.MethodEnum.Post,path:l.encode("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r),As=e=>(t,r)=>{let o=r||{},{forwardToReplicas:s}=o,n=R(o,["forwardToReplicas"]),a=q.createMappedRequestOptions(n);return s&&(a.queryParameters.forwardToReplicas=1),l.createWaitablePromise(e.transporter.write({method:m.MethodEnum.Put,path:l.encode("1/indexes/%s/settings",e.indexName),data:t},a),(d,y)=>D(e)(d.taskID,y))},D=e=>(t,r)=>l.createRetryablePromise(s=>bt(e)(t,r).then(n=>n.status!=="published"?s():void 0)),Ss={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},k={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},ee={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Ds={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},Rs={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};i.ApiKeyACLEnum=Ss;i.BatchActionEnum=k;i.ScopeEnum=ee;i.StrategyEnum=Ds;i.SynonymEnum=Rs;i.addApiKey=Rr;i.assignUserID=vr;i.assignUserIDs=xr;i.batch=pt;i.browseObjects=Yr;i.browseRules=Zr;i.browseSynonyms=es;i.chunkedBatch=te;i.clearObjects=ts;i.clearRules=rs;i.clearSynonyms=ss;i.copyIndex=Z;i.copyRules=qr;i.copySettings=Er;i.copySynonyms=Tr;i.createBrowsablePromise=Y;i.createMissingObjectIDError=ct;i.createObjectNotFoundError=ut;i.createSearchClient=Dr;i.createValidUntilNotFoundError=lt;i.deleteApiKey=Mr;i.deleteBy=ns;i.deleteIndex=as;i.deleteObject=os;i.deleteObjects=yt;i.deleteRule=is;i.deleteSynonym=cs;i.exists=us;i.findObject=ls;i.generateSecuredApiKey=wr;i.getApiKey=$;i.getLogs=kr;i.getObject=ds;i.getObjectPosition=ps;i.getObjects=ms;i.getRule=hs;i.getSecuredApiKeyRemainingValidity=Cr;i.getSettings=gt;i.getSynonym=ys;i.getTask=bt;i.getTopUserIDs=Ur;i.getUserID=Nr;i.hasPendingMappings=Wr;i.initIndex=L;i.listApiKeys=Hr;i.listClusters=_r;i.listIndices=Fr;i.listUserIDs=Br;i.moveIndex=Kr;i.multipleBatch=zr;i.multipleGetObjects=Gr;i.multipleQueries=$r;i.multipleSearchForFacetValues=Lr;i.partialUpdateObject=gs;i.partialUpdateObjects=Pt;i.removeUserID=Vr;i.replaceAllObjects=fs;i.replaceAllRules=bs;i.replaceAllSynonyms=Ps;i.restoreApiKey=Qr;i.saveObject=js;i.saveObjects=he;i.saveRule=Os;i.saveRules=ye;i.saveSynonym=Is;i.saveSynonyms=ge;i.search=ft;i.searchForFacetValues=dt;i.searchRules=mt;i.searchSynonyms=ht;i.searchUserIDs=Jr;i.setSettings=As;i.updateApiKey=Xr;i.waitTask=D});var It=I((on,Ot)=>{Ot.exports=jt()});var At=I(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});function vs(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var xs={Debug:1,Info:2,Error:3};re.LogLevelEnum=xs;re.createNullLogger=vs});var Dt=I((un,St)=>{St.exports=At()});var xt=I(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});var Rt=require("http"),vt=require("https"),qs=require("url");function Es(){let e={keepAlive:!0},t=new Rt.Agent(e),r=new vt.Agent(e);return{send(s){return new Promise(n=>{let a=qs.parse(s.url),o=a.query===null?a.pathname:`${a.pathname}?${a.query}`,d=u({agent:a.protocol==="https:"?r:t,hostname:a.hostname,path:o,method:s.method,headers:s.headers},a.port!==void 0?{port:a.port||""}:{}),y=(a.protocol==="https:"?vt:Rt).request(d,h=>{let S="";h.on("data",O=>S+=O),h.on("end",()=>{clearTimeout(f),clearTimeout(p),n({status:h.statusCode||0,content:S,isTimedOut:!1})})}),b=(h,S)=>setTimeout(()=>{y.abort(),n({status:0,content:S,isTimedOut:!0})},h*1e3),f=b(s.connectTimeout,"Connection timeout"),p;y.on("error",h=>{clearTimeout(f),clearTimeout(p),n({status:0,content:h.message,isTimedOut:!1})}),y.once("response",()=>{clearTimeout(f),p=b(s.responseTimeout,"Socket timeout")}),s.data!==void 0&&y.write(s.data),y.end()})},destroy(){return t.destroy(),r.destroy(),Promise.resolve()}}}fe.createNodeHttpRequester=Es});var Et=I((dn,qt)=>{qt.exports=xt()});var kt=I((pn,Tt)=>{"use strict";var Mt=Ee(),Ts=we(),W=st(),be=F(),Pe=it(),c=It(),Ms=Dt(),ws=Et(),ks=K();function wt(e,t,r){let s={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:ws.createNodeHttpRequester(),logger:Ms.createNullLogger(),responsesCache:Mt.createNullCache(),requestsCache:Mt.createNullCache(),hostsCache:Ts.createInMemoryCache(),userAgent:ks.createUserAgent(be.version).add({segment:"Node.js",version:process.versions.node})};return c.createSearchClient(g(u(u({},s),r),{methods:{search:c.multipleQueries,searchForFacetValues:c.multipleSearchForFacetValues,multipleBatch:c.multipleBatch,multipleGetObjects:c.multipleGetObjects,multipleQueries:c.multipleQueries,copyIndex:c.copyIndex,copySettings:c.copySettings,copyRules:c.copyRules,copySynonyms:c.copySynonyms,moveIndex:c.moveIndex,listIndices:c.listIndices,getLogs:c.getLogs,listClusters:c.listClusters,multipleSearchForFacetValues:c.multipleSearchForFacetValues,getApiKey:c.getApiKey,addApiKey:c.addApiKey,listApiKeys:c.listApiKeys,updateApiKey:c.updateApiKey,deleteApiKey:c.deleteApiKey,restoreApiKey:c.restoreApiKey,assignUserID:c.assignUserID,assignUserIDs:c.assignUserIDs,getUserID:c.getUserID,searchUserIDs:c.searchUserIDs,listUserIDs:c.listUserIDs,getTopUserIDs:c.getTopUserIDs,removeUserID:c.removeUserID,hasPendingMappings:c.hasPendingMappings,generateSecuredApiKey:c.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:c.getSecuredApiKeyRemainingValidity,destroy:be.destroy,initIndex:n=>a=>c.initIndex(n)(a,{methods:{batch:c.batch,delete:c.deleteIndex,getObject:c.getObject,getObjects:c.getObjects,saveObject:c.saveObject,saveObjects:c.saveObjects,search:c.search,searchForFacetValues:c.searchForFacetValues,waitTask:c.waitTask,setSettings:c.setSettings,getSettings:c.getSettings,partialUpdateObject:c.partialUpdateObject,partialUpdateObjects:c.partialUpdateObjects,deleteObject:c.deleteObject,deleteObjects:c.deleteObjects,deleteBy:c.deleteBy,clearObjects:c.clearObjects,browseObjects:c.browseObjects,getObjectPosition:c.getObjectPosition,findObject:c.findObject,exists:c.exists,saveSynonym:c.saveSynonym,saveSynonyms:c.saveSynonyms,getSynonym:c.getSynonym,searchSynonyms:c.searchSynonyms,browseSynonyms:c.browseSynonyms,deleteSynonym:c.deleteSynonym,clearSynonyms:c.clearSynonyms,replaceAllObjects:c.replaceAllObjects,replaceAllSynonyms:c.replaceAllSynonyms,searchRules:c.searchRules,getRule:c.getRule,deleteRule:c.deleteRule,saveRule:c.saveRule,saveRules:c.saveRules,replaceAllRules:c.replaceAllRules,browseRules:c.browseRules,clearRules:c.clearRules}}),initAnalytics:()=>n=>W.createAnalyticsClient(g(u(u({},s),n),{methods:{addABTest:W.addABTest,getABTest:W.getABTest,getABTests:W.getABTests,stopABTest:W.stopABTest,deleteABTest:W.deleteABTest}})),initRecommendation:()=>n=>Pe.createRecommendationClient(g(u(u({},s),n),{methods:{getPersonalizationStrategy:Pe.getPersonalizationStrategy,setPersonalizationStrategy:Pe.setPersonalizationStrategy}}))}}))}wt.version=be.version;Tt.exports=wt});var Ut=I((mn,je)=>{var Ct=kt();je.exports=Ct;je.exports.default=Ct});var Ws={};Vt(Ws,{default:()=>Ks});var Oe=C(require("@yarnpkg/core")),E=C(require("@yarnpkg/core")),Ie=C(require("@yarnpkg/plugin-essentials")),Ht=C(require("semver"));var se=C(require("@yarnpkg/core")),Nt=C(Ut()),Cs="e8e1bd300d860104bb8c58453ffa1eb4",Us="OFCNCOG2CU",Wt=async(e,t)=>{var a;let r=se.structUtils.stringifyIdent(e),n=Ns(t).initIndex("npm-search");try{return((a=(await n.getObject(r,{attributesToRetrieve:["types"]})).types)==null?void 0:a.ts)==="definitely-typed"}catch(o){return!1}},Ns=e=>(0,Nt.default)(Us,Cs,{requester:{async send(r){try{let s=await se.httpUtils.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var _t=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,Hs=async(e,t,r,s)=>{if(r.scope==="types")return;let{project:n}=e,{configuration:a}=n,o=a.makeResolver(),d={project:n,resolver:o,report:new E.ThrowReport};if(!await Wt(r,a))return;let b=_t(r),f=E.structUtils.parseRange(r.range).selector;if(!E.semverUtils.validRange(f)){let P=await o.getCandidates(r,new Map,d);f=E.structUtils.parseRange(P[0].reference).selector}let p=Ht.default.coerce(f);if(p===null)return;let h=`${Ie.suggestUtils.Modifier.CARET}${p.major}`,S=E.structUtils.makeDescriptor(E.structUtils.makeIdent("types",b),h),O=E.miscUtils.mapAndFind(n.workspaces,P=>{var T,V;let x=(T=P.manifest.dependencies.get(r.identHash))==null?void 0:T.descriptorHash,v=(V=P.manifest.devDependencies.get(r.identHash))==null?void 0:V.descriptorHash;if(x!==r.descriptorHash&&v!==r.descriptorHash)return E.miscUtils.mapAndFind.skip;let j=[];for(let Ae of Oe.Manifest.allDependencies){let Se=P.manifest[Ae].get(S.identHash);typeof Se!="undefined"&&j.push([Ae,Se])}return j.length===0?E.miscUtils.mapAndFind.skip:j});if(typeof O!="undefined")for(let[P,x]of O)e.manifest[P].set(x.identHash,x);else{try{if((await o.getCandidates(S,new Map,d)).length===0)return}catch{return}e.manifest[Ie.suggestUtils.Target.DEVELOPMENT].set(S.identHash,S)}},_s=async(e,t,r)=>{if(r.scope==="types")return;let s=_t(r),n=E.structUtils.makeIdent("types",s);for(let a of Oe.Manifest.allDependencies)typeof e.manifest[a].get(n.identHash)!="undefined"&&e.manifest[a].delete(n.identHash)},Fs=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},Bs={hooks:{afterWorkspaceDependencyAddition:Hs,afterWorkspaceDependencyRemoval:_s,beforeWorkspacePacking:Fs}},Ks=Bs;return Ws;})();
|
|
7
|
-
return plugin;
|
|
8
|
-
}
|
|
9
|
-
};
|