@fireproof/vendor 0.23.0 → 0.23.1-dev-issue-1057
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/merge-package.d.ts +1 -0
- package/merge-package.js +146 -0
- package/merge-package.js.map +1 -0
- package/p-limit/index.d.ts +2 -81
- package/p-limit/index.js +69 -95
- package/p-limit/index.js.map +1 -0
- package/p-limit/index.test-d.d.ts +1 -0
- package/p-limit/index.test-d.js +11 -0
- package/p-limit/index.test-d.js.map +1 -0
- package/p-limit/test.d.ts +1 -0
- package/p-limit/test.js +150 -207
- package/p-limit/test.js.map +1 -0
- package/package.json +5 -5
- package/to-esm-transform.d.ts +2 -0
- package/to-esm-transform.js +24 -0
- package/to-esm-transform.js.map +1 -0
- package/merge-package.ts +0 -207
- package/p-limit/index.test-d.ts +0 -19
- package/p-limit/license +0 -9
- package/p-limit/package.json +0 -59
- package/p-limit/readme.md +0 -128
- package/to-esm-transform.ts +0 -42
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/merge-package.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as fs from "fs/promises";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { $, glob } from "zx";
|
|
4
|
+
import { command, flag, run, boolean, string, option, restPositionals } from "cmd-ts";
|
|
5
|
+
async function prepare(packages, { buildBase }) {
|
|
6
|
+
await $ `rm -rf ${buildBase}`;
|
|
7
|
+
await $ `mkdir -p ${buildBase}/patched`;
|
|
8
|
+
await $ `cp package.json ${buildBase}/package.json`;
|
|
9
|
+
await Promise.all(packages
|
|
10
|
+
.filter((p) => p.type === "git")
|
|
11
|
+
.map(async ({ name, url, npm }) => {
|
|
12
|
+
await fs.mkdir(`${buildBase}/patched/${name}`, { recursive: true });
|
|
13
|
+
await $ `git clone ${url} ${buildBase}/patched/${name}`;
|
|
14
|
+
await $ `cd ${buildBase}/patched/${name} && ${npm} install && ${npm} run build && ${npm} pack`;
|
|
15
|
+
await $ `cd ${buildBase} && pnpm install -f patched/${name}/*.tgz`;
|
|
16
|
+
}));
|
|
17
|
+
for (const { name: pkg, type } of packages) {
|
|
18
|
+
if (type === "npm") {
|
|
19
|
+
await $ `cd ${buildBase} && pnpm install ${pkg}`;
|
|
20
|
+
}
|
|
21
|
+
await $ `cd ${buildBase} && rm -rf src/${pkg}`;
|
|
22
|
+
await $ `cd ${buildBase} && mkdir -p src/${pkg}`;
|
|
23
|
+
await $ `cd ${buildBase} && rsync -vaxH node_modules/${pkg}/ src/${pkg}/`;
|
|
24
|
+
}
|
|
25
|
+
const files = (await Promise.all(packages
|
|
26
|
+
.map(({ name }) => name)
|
|
27
|
+
.map((p) => `${buildBase}/src/${p}/**/*.[jt]s`)
|
|
28
|
+
.map((f) => glob(f))))
|
|
29
|
+
.flat()
|
|
30
|
+
.filter((f) => !f.endsWith(".d.ts"));
|
|
31
|
+
await $ `jscodeshift --parser=ts -t=./to-esm-transform.ts ${files}`;
|
|
32
|
+
}
|
|
33
|
+
function patchVersion(packageJson) {
|
|
34
|
+
let version = "refs/tags/v0.0.0-smoke";
|
|
35
|
+
if (process.env.GITHUB_REF && process.env.GITHUB_REF.startsWith("refs/tags/v")) {
|
|
36
|
+
version = process.env.GITHUB_REF;
|
|
37
|
+
}
|
|
38
|
+
version = version.split("/").slice(-1)[0].replace(/^v/, "");
|
|
39
|
+
console.log(`Patch version ${version} in package.json`);
|
|
40
|
+
packageJson.version = version;
|
|
41
|
+
}
|
|
42
|
+
function pluginExports(name, exports, srcDir, buildBase) {
|
|
43
|
+
const result = {};
|
|
44
|
+
const nested = {};
|
|
45
|
+
result[`./${name}`] = nested;
|
|
46
|
+
console.log(">>>>>=", name, srcDir);
|
|
47
|
+
for (const [key, value] of Object.entries(exports || {})) {
|
|
48
|
+
if (typeof value === "string") {
|
|
49
|
+
nested[key] = `./${path.join(path.relative(buildBase, srcDir), value)}`;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
nested[key] = Object.entries(value).reduce((acc, [k, v]) => {
|
|
53
|
+
acc[k] = `./${path.join(path.relative(buildBase, srcDir), v)}`;
|
|
54
|
+
return acc;
|
|
55
|
+
}, {});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
function mergePackageJson(dest, src, srcDir, { buildBase }) {
|
|
61
|
+
dest.dependencies = { ...dest.dependencies, ...src.dependencies };
|
|
62
|
+
dest.exports = {
|
|
63
|
+
...dest.exports,
|
|
64
|
+
...pluginExports(src.name, src.exports, srcDir, buildBase),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function toPackageOptions(packages) {
|
|
68
|
+
const [name, url, npm] = packages.split(",");
|
|
69
|
+
if (url) {
|
|
70
|
+
return { type: "git", name, url, npm: npm || "pnpm" };
|
|
71
|
+
}
|
|
72
|
+
return { type: "npm", name };
|
|
73
|
+
}
|
|
74
|
+
async function main() {
|
|
75
|
+
const cmd = command({
|
|
76
|
+
name: "merge-package",
|
|
77
|
+
description: "merge a package.json to build a vendore package.json",
|
|
78
|
+
version: "1.0.0",
|
|
79
|
+
args: {
|
|
80
|
+
verbose: flag({
|
|
81
|
+
long: "verbose",
|
|
82
|
+
type: boolean,
|
|
83
|
+
}),
|
|
84
|
+
prepare: flag({
|
|
85
|
+
long: "prepare",
|
|
86
|
+
type: boolean,
|
|
87
|
+
}),
|
|
88
|
+
buildBase: option({
|
|
89
|
+
long: "build-base",
|
|
90
|
+
type: string,
|
|
91
|
+
description: "build base directory",
|
|
92
|
+
defaultValue: () => "./dist",
|
|
93
|
+
defaultValueIsSerializable: true,
|
|
94
|
+
}),
|
|
95
|
+
buildPackageJson: option({
|
|
96
|
+
long: "dest-package-json",
|
|
97
|
+
type: string,
|
|
98
|
+
description: "build destination",
|
|
99
|
+
defaultValue: () => "./dist/package.json",
|
|
100
|
+
defaultValueIsSerializable: true,
|
|
101
|
+
}),
|
|
102
|
+
srcPackageJson: option({
|
|
103
|
+
long: "src-package-json",
|
|
104
|
+
type: string,
|
|
105
|
+
description: "source package.json",
|
|
106
|
+
defaultValue: () => "./package.json",
|
|
107
|
+
defaultValueIsSerializable: true,
|
|
108
|
+
}),
|
|
109
|
+
packagesStr: restPositionals({
|
|
110
|
+
description: "packages to merge, without anything it's pulled from npm, if package,url,npm its pulled from git and installed with npm",
|
|
111
|
+
}),
|
|
112
|
+
},
|
|
113
|
+
handler: async (args) => {
|
|
114
|
+
$.verbose = args.verbose;
|
|
115
|
+
const packages = args.packagesStr.map(toPackageOptions);
|
|
116
|
+
if (args.prepare) {
|
|
117
|
+
await prepare(packages, args);
|
|
118
|
+
}
|
|
119
|
+
await fs.mkdir(path.dirname(args.buildPackageJson), { recursive: true });
|
|
120
|
+
const packageJson = JSON.parse(await fs.readFile(args.srcPackageJson, "utf8"));
|
|
121
|
+
patchVersion(packageJson);
|
|
122
|
+
for (const packageFile of packages.map((p) => `dist/src/${p.name}/package.json`)) {
|
|
123
|
+
const mPackageJson = JSON.parse(await fs.readFile(packageFile, "utf8"));
|
|
124
|
+
await fs.unlink(packageFile);
|
|
125
|
+
mergePackageJson(packageJson, mPackageJson, path.dirname(packageFile), args);
|
|
126
|
+
}
|
|
127
|
+
packageJson.dependencies = Object.entries(packageJson.dependencies).reduce((acc, [k]) => {
|
|
128
|
+
if (!packages.find((p) => p.name === k)) {
|
|
129
|
+
acc[k] = packageJson.dependencies[k];
|
|
130
|
+
}
|
|
131
|
+
return acc;
|
|
132
|
+
}, {});
|
|
133
|
+
await fs.writeFile(args.buildPackageJson, JSON.stringify(packageJson, null, 2));
|
|
134
|
+
const projectRoot = path.resolve(path.dirname(args.srcPackageJson));
|
|
135
|
+
const gitignoreSrc = path.resolve(projectRoot, ".gitignore");
|
|
136
|
+
await $ `cp ${gitignoreSrc} ${path.join(args.buildBase, ".npmignore")}`;
|
|
137
|
+
await $ `cd ${args.buildBase} && pnpm pack`;
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
await run(cmd, process.argv.slice(2));
|
|
141
|
+
}
|
|
142
|
+
main().catch((a) => {
|
|
143
|
+
console.error(a);
|
|
144
|
+
process.exit(1);
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=merge-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-package.js","sourceRoot":"","sources":["../jsr/merge-package.ts"],"names":[],"mappings":"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"}
|
package/p-limit/index.d.ts
CHANGED
|
@@ -1,81 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
The number of promises that are currently running.
|
|
4
|
-
*/
|
|
5
|
-
readonly activeCount: number;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
The number of promises that are waiting to run (i.e. their internal `fn` was not called yet).
|
|
9
|
-
*/
|
|
10
|
-
readonly pendingCount: number;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
Get or set the concurrency limit.
|
|
14
|
-
*/
|
|
15
|
-
concurrency: number;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
Discard pending promises that are waiting to run.
|
|
19
|
-
|
|
20
|
-
This might be useful if you want to teardown the queue at the end of your program's lifecycle or discard any function calls referencing an intermediary state of your app.
|
|
21
|
-
|
|
22
|
-
Note: This does not cancel promises that are already running.
|
|
23
|
-
*/
|
|
24
|
-
clearQueue: () => void;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
@param fn - Promise-returning/async function.
|
|
28
|
-
@param arguments - Any arguments to pass through to `fn`. Support for passing arguments on to the `fn` is provided in order to be able to avoid creating unnecessary closures. You probably don't need this optimization unless you're pushing a lot of functions.
|
|
29
|
-
@returns The promise returned by calling `fn(...arguments)`.
|
|
30
|
-
*/
|
|
31
|
-
<Arguments extends unknown[], ReturnType>(
|
|
32
|
-
function_: (...arguments_: Arguments) => PromiseLike<ReturnType> | ReturnType,
|
|
33
|
-
...arguments_: Arguments
|
|
34
|
-
): Promise<ReturnType>;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
Run multiple promise-returning & async functions with limited concurrency.
|
|
39
|
-
|
|
40
|
-
@param concurrency - Concurrency limit. Minimum: `1`.
|
|
41
|
-
@returns A `limit` function.
|
|
42
|
-
*/
|
|
43
|
-
export default function pLimit(concurrency: number): LimitFunction;
|
|
44
|
-
|
|
45
|
-
export interface Options {
|
|
46
|
-
/**
|
|
47
|
-
Concurrency limit.
|
|
48
|
-
|
|
49
|
-
Minimum: `1`.
|
|
50
|
-
*/
|
|
51
|
-
readonly concurrency: number;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
Returns a function with limited concurrency.
|
|
56
|
-
|
|
57
|
-
The returned function manages its own concurrent executions, allowing you to call it multiple times without exceeding the specified concurrency limit.
|
|
58
|
-
|
|
59
|
-
Ideal for scenarios where you need to control the number of simultaneous executions of a single function, rather than managing concurrency across multiple functions.
|
|
60
|
-
|
|
61
|
-
@param function_ - Promise-returning/async function.
|
|
62
|
-
@return Function with limited concurrency.
|
|
63
|
-
|
|
64
|
-
@example
|
|
65
|
-
```
|
|
66
|
-
import {limitFunction} from 'p-limit';
|
|
67
|
-
|
|
68
|
-
const limitedFunction = limitFunction(async () => {
|
|
69
|
-
return doSomething();
|
|
70
|
-
}, {concurrency: 1});
|
|
71
|
-
|
|
72
|
-
const input = Array.from({length: 10}, limitedFunction);
|
|
73
|
-
|
|
74
|
-
// Only one promise is run at once.
|
|
75
|
-
await Promise.all(input);
|
|
76
|
-
```
|
|
77
|
-
*/
|
|
78
|
-
export function limitFunction<Arguments extends unknown[], ReturnType>(
|
|
79
|
-
function_: (...arguments_: Arguments) => PromiseLike<ReturnType> | ReturnType,
|
|
80
|
-
option: Options,
|
|
81
|
-
): (...arguments_: Arguments) => Promise<ReturnType>;
|
|
1
|
+
export default function pLimit(concurrency: any): (function_: any, ...arguments_: any[]) => Promise<unknown>;
|
|
2
|
+
export declare function limitFunction(function_: any, option: any): (...arguments_: any[]) => Promise<unknown>;
|
package/p-limit/index.js
CHANGED
|
@@ -1,104 +1,78 @@
|
|
|
1
1
|
import Queue from "yocto-queue";
|
|
2
|
-
|
|
3
2
|
export default function pLimit(concurrency) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const next = () => {
|
|
18
|
-
activeCount--;
|
|
19
|
-
|
|
20
|
-
resumeNext();
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const run = async (function_, resolve, arguments_) => {
|
|
24
|
-
const result = (async () => function_(...arguments_))();
|
|
25
|
-
|
|
26
|
-
resolve(result);
|
|
27
|
-
|
|
28
|
-
try {
|
|
29
|
-
await result;
|
|
30
|
-
} catch {
|
|
31
|
-
/* */
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
next();
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const enqueue = (function_, resolve, arguments_) => {
|
|
38
|
-
// Queue `internalResolve` instead of the `run` function
|
|
39
|
-
// to preserve asynchronous context.
|
|
40
|
-
new Promise((internalResolve) => {
|
|
41
|
-
queue.enqueue(internalResolve);
|
|
42
|
-
}).then(run.bind(undefined, function_, resolve, arguments_));
|
|
43
|
-
|
|
44
|
-
(async () => {
|
|
45
|
-
// This function needs to wait until the next microtask before comparing
|
|
46
|
-
// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously
|
|
47
|
-
// after the `internalResolve` function is dequeued and called. The comparison in the if-statement
|
|
48
|
-
// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.
|
|
49
|
-
await Promise.resolve();
|
|
50
|
-
|
|
51
|
-
if (activeCount < concurrency) {
|
|
3
|
+
validateConcurrency(concurrency);
|
|
4
|
+
const queue = new Queue();
|
|
5
|
+
let activeCount = 0;
|
|
6
|
+
const resumeNext = () => {
|
|
7
|
+
if (activeCount < concurrency && queue.size > 0) {
|
|
8
|
+
queue.dequeue()();
|
|
9
|
+
activeCount++;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const next = () => {
|
|
13
|
+
activeCount--;
|
|
52
14
|
resumeNext();
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
15
|
+
};
|
|
16
|
+
const run = async (function_, resolve, arguments_) => {
|
|
17
|
+
const result = (async () => function_(...arguments_))();
|
|
18
|
+
resolve(result);
|
|
19
|
+
try {
|
|
20
|
+
await result;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
/* */
|
|
24
|
+
}
|
|
25
|
+
next();
|
|
26
|
+
};
|
|
27
|
+
const enqueue = (function_, resolve, arguments_) => {
|
|
28
|
+
new Promise((internalResolve) => {
|
|
29
|
+
queue.enqueue(internalResolve);
|
|
30
|
+
}).then(run.bind(undefined, function_, resolve, arguments_));
|
|
31
|
+
(async () => {
|
|
32
|
+
await Promise.resolve();
|
|
33
|
+
if (activeCount < concurrency) {
|
|
34
|
+
resumeNext();
|
|
35
|
+
}
|
|
36
|
+
})();
|
|
37
|
+
};
|
|
38
|
+
const generator = (function_, ...arguments_) => new Promise((resolve) => {
|
|
39
|
+
enqueue(function_, resolve, arguments_);
|
|
60
40
|
});
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
return generator;
|
|
41
|
+
Object.defineProperties(generator, {
|
|
42
|
+
activeCount: {
|
|
43
|
+
get: () => activeCount,
|
|
44
|
+
},
|
|
45
|
+
pendingCount: {
|
|
46
|
+
get: () => queue.size,
|
|
47
|
+
},
|
|
48
|
+
clearQueue: {
|
|
49
|
+
value() {
|
|
50
|
+
queue.clear();
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
concurrency: {
|
|
54
|
+
get: () => concurrency,
|
|
55
|
+
set(newConcurrency) {
|
|
56
|
+
validateConcurrency(newConcurrency);
|
|
57
|
+
concurrency = newConcurrency;
|
|
58
|
+
queueMicrotask(() => {
|
|
59
|
+
while (activeCount < concurrency && queue.size > 0) {
|
|
60
|
+
resumeNext();
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
return generator;
|
|
91
67
|
}
|
|
92
|
-
|
|
93
68
|
export function limitFunction(function_, option) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return (...arguments_) => limit(() => function_(...arguments_));
|
|
69
|
+
const { concurrency } = option;
|
|
70
|
+
const limit = pLimit(concurrency);
|
|
71
|
+
return (...arguments_) => limit(() => function_(...arguments_));
|
|
98
72
|
}
|
|
99
|
-
|
|
100
73
|
function validateConcurrency(concurrency) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
74
|
+
if (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {
|
|
75
|
+
throw new TypeError("Expected `concurrency` to be a number from 1 and up");
|
|
76
|
+
}
|
|
104
77
|
}
|
|
78
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../jsr/p-limit/index.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { expectType } from "tsd";
|
|
2
|
+
import pLimit from "./index.js";
|
|
3
|
+
const limit = pLimit(1);
|
|
4
|
+
const input = [limit(async () => "foo"), limit(async () => "bar"), limit(async () => undefined)];
|
|
5
|
+
expectType(Promise.all(input));
|
|
6
|
+
expectType(limit((a) => "", "test"));
|
|
7
|
+
expectType(limit(async (a, b) => "", "test", 1));
|
|
8
|
+
expectType(limit.activeCount);
|
|
9
|
+
expectType(limit.pendingCount);
|
|
10
|
+
expectType(limit.clearQueue());
|
|
11
|
+
//# sourceMappingURL=index.test-d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test-d.js","sourceRoot":"","sources":["../../jsr/p-limit/index.test-d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,MAAM,MAAM,YAAY,CAAC;AAEhC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAExB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjG,UAAU,CAAkC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAGhE,UAAU,CAAkB,KAAK,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAE9D,UAAU,CAAkB,KAAK,CAAC,KAAK,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAElF,UAAU,CAAS,KAAK,CAAC,WAAW,CAAC,CAAC;AACtC,UAAU,CAAS,KAAK,CAAC,YAAY,CAAC,CAAC;AAGvC,UAAU,CAAO,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|