@kortyx/hooks 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/hooks.d.ts +7 -7
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +19 -54
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/internal.d.ts +3 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +5 -0
- package/dist/reason-engine.d.ts +19 -0
- package/dist/reason-engine.d.ts.map +1 -0
- package/dist/reason-engine.js +81 -0
- package/package.json +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.0](https://github.com/kortyx-io/kortyx/compare/hooks-v0.3.0...hooks-v0.4.0) (2026-02-17)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **agent:** strict createAgent and unify useReason streaming ([6725f97](https://github.com/kortyx-io/kortyx/commit/6725f976fc32083fb7d2590f1353d16a99afb46f))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **hooks:** move reason engine to internal subpath export ([b82f2f2](https://github.com/kortyx-io/kortyx/commit/b82f2f2a93067f91dd010334486eb0f3a3a547b8))
|
|
14
|
+
|
|
3
15
|
## [0.3.0](https://github.com/kortyx-io/Kortyx/compare/hooks-v0.2.3...hooks-v0.3.0) (2026-02-07)
|
|
4
16
|
|
|
5
17
|
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import type { InterruptInput, InterruptResult, NodeContext } from "@kortyx/core";
|
|
2
2
|
import type { MemoryAdapter } from "@kortyx/memory";
|
|
3
|
+
import type { ProviderModelRef } from "@kortyx/providers";
|
|
3
4
|
type StateSetter<T> = (next: T | ((prev: T) => T)) => void;
|
|
4
|
-
export type
|
|
5
|
-
|
|
5
|
+
export type UseReasonArgs = {
|
|
6
|
+
model: ProviderModelRef;
|
|
7
|
+
input: string;
|
|
6
8
|
system?: string | undefined;
|
|
7
9
|
temperature?: number | undefined;
|
|
8
10
|
emit?: boolean | undefined;
|
|
9
11
|
stream?: boolean | undefined;
|
|
10
12
|
};
|
|
11
|
-
export type
|
|
13
|
+
export type UseReasonResult = {
|
|
12
14
|
text: string;
|
|
13
|
-
|
|
14
|
-
export type AiModel = {
|
|
15
|
-
call: (args: AiCallArgs) => Promise<AiCallResult>;
|
|
15
|
+
raw?: unknown;
|
|
16
16
|
};
|
|
17
17
|
export declare function useEmit(): NodeContext["emit"];
|
|
18
18
|
export declare function useStructuredData(args: {
|
|
19
19
|
data: unknown;
|
|
20
20
|
dataType?: string | undefined;
|
|
21
21
|
}): void;
|
|
22
|
-
export declare function
|
|
22
|
+
export declare function useReason(args: UseReasonArgs): Promise<UseReasonResult>;
|
|
23
23
|
export declare function useAiMemory(): MemoryAdapter;
|
|
24
24
|
export declare function useAiInterrupt(input: InterruptInput): Promise<InterruptResult>;
|
|
25
25
|
export declare function useNodeState<T>(initialValue: T): [T, StateSetter<T>];
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK1D,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAgB,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAG7C;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,GAAG,IAAI,CASP;AAyBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAEvE;AAED,wBAAgB,WAAW,IAAI,aAAa,CAM3C;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,wBAAgB,YAAY,CAAC,CAAC,EAC5B,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,CAAC,GACf,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AA+CvB,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,CAAC,GACf,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAoBrB"}
|
package/dist/hooks.js
CHANGED
|
@@ -2,40 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useEmit = useEmit;
|
|
4
4
|
exports.useStructuredData = useStructuredData;
|
|
5
|
-
exports.
|
|
5
|
+
exports.useReason = useReason;
|
|
6
6
|
exports.useAiMemory = useAiMemory;
|
|
7
7
|
exports.useAiInterrupt = useAiInterrupt;
|
|
8
8
|
exports.useNodeState = useNodeState;
|
|
9
9
|
exports.useWorkflowState = useWorkflowState;
|
|
10
10
|
const context_1 = require("./context");
|
|
11
|
-
const
|
|
12
|
-
const DEFAULT_MODEL = "gemini-2.5-flash";
|
|
13
|
-
const resolveModel = (modelId, config) => {
|
|
14
|
-
const defaultProvider = config?.provider ?? DEFAULT_PROVIDER;
|
|
15
|
-
const defaultModel = config?.name ?? DEFAULT_MODEL;
|
|
16
|
-
if (!modelId) {
|
|
17
|
-
return {
|
|
18
|
-
provider: defaultProvider,
|
|
19
|
-
name: defaultModel,
|
|
20
|
-
temperature: config?.temperature,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
const separatorIndex = modelId.indexOf(":");
|
|
24
|
-
if (separatorIndex === -1) {
|
|
25
|
-
return {
|
|
26
|
-
provider: defaultProvider,
|
|
27
|
-
name: modelId,
|
|
28
|
-
temperature: config?.temperature,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
const provider = modelId.slice(0, separatorIndex) || defaultProvider;
|
|
32
|
-
const name = modelId.slice(separatorIndex + 1) || defaultModel;
|
|
33
|
-
return {
|
|
34
|
-
provider,
|
|
35
|
-
name,
|
|
36
|
-
temperature: config?.temperature,
|
|
37
|
-
};
|
|
38
|
-
};
|
|
11
|
+
const reason_engine_1 = require("./reason-engine");
|
|
39
12
|
function useEmit() {
|
|
40
13
|
const ctx = (0, context_1.getHookContext)();
|
|
41
14
|
return ctx.node.emit;
|
|
@@ -50,35 +23,27 @@ function useStructuredData(args) {
|
|
|
50
23
|
data: args.data,
|
|
51
24
|
});
|
|
52
25
|
}
|
|
53
|
-
function
|
|
26
|
+
async function reasonEngine(args) {
|
|
54
27
|
const ctx = (0, context_1.getHookContext)();
|
|
55
28
|
const getProvider = ctx.getProvider;
|
|
56
29
|
if (!getProvider) {
|
|
57
|
-
throw new Error("
|
|
30
|
+
throw new Error("useReason requires a provider factory in runtime config.");
|
|
58
31
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
? { temperature }
|
|
75
|
-
: {}),
|
|
76
|
-
},
|
|
77
|
-
stream: { minChars: 12, flushMs: 50, segmentChars: 48 },
|
|
78
|
-
});
|
|
79
|
-
return { text };
|
|
80
|
-
},
|
|
81
|
-
};
|
|
32
|
+
return (0, reason_engine_1.runReasonEngine)({
|
|
33
|
+
getProvider,
|
|
34
|
+
model: args.model,
|
|
35
|
+
input: args.input,
|
|
36
|
+
system: args.system,
|
|
37
|
+
temperature: args.temperature,
|
|
38
|
+
defaultTemperature: ctx.node.config?.model?.temperature,
|
|
39
|
+
stream: args.stream,
|
|
40
|
+
emit: args.emit,
|
|
41
|
+
nodeId: ctx.node.graph.node,
|
|
42
|
+
emitEvent: ctx.node.emit,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function useReason(args) {
|
|
46
|
+
return reasonEngine(args);
|
|
82
47
|
}
|
|
83
48
|
function useAiMemory() {
|
|
84
49
|
const ctx = (0, context_1.getHookContext)();
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { HookRuntimeContext } from "./context";
|
|
2
2
|
export { runWithHookContext } from "./context";
|
|
3
|
-
export {
|
|
3
|
+
export type { UseReasonArgs, UseReasonResult } from "./hooks";
|
|
4
|
+
export { useAiInterrupt, useAiMemory, useEmit, useNodeState, useReason, useStructuredData, useWorkflowState, } from "./hooks";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,WAAW,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useWorkflowState = exports.useStructuredData = exports.
|
|
3
|
+
exports.useWorkflowState = exports.useStructuredData = exports.useReason = exports.useNodeState = exports.useEmit = exports.useAiMemory = exports.useAiInterrupt = exports.runWithHookContext = void 0;
|
|
4
4
|
var context_1 = require("./context");
|
|
5
5
|
Object.defineProperty(exports, "runWithHookContext", { enumerable: true, get: function () { return context_1.runWithHookContext; } });
|
|
6
6
|
var hooks_1 = require("./hooks");
|
|
7
7
|
Object.defineProperty(exports, "useAiInterrupt", { enumerable: true, get: function () { return hooks_1.useAiInterrupt; } });
|
|
8
8
|
Object.defineProperty(exports, "useAiMemory", { enumerable: true, get: function () { return hooks_1.useAiMemory; } });
|
|
9
|
-
Object.defineProperty(exports, "useAiProvider", { enumerable: true, get: function () { return hooks_1.useAiProvider; } });
|
|
10
9
|
Object.defineProperty(exports, "useEmit", { enumerable: true, get: function () { return hooks_1.useEmit; } });
|
|
11
10
|
Object.defineProperty(exports, "useNodeState", { enumerable: true, get: function () { return hooks_1.useNodeState; } });
|
|
11
|
+
Object.defineProperty(exports, "useReason", { enumerable: true, get: function () { return hooks_1.useReason; } });
|
|
12
12
|
Object.defineProperty(exports, "useStructuredData", { enumerable: true, get: function () { return hooks_1.useStructuredData; } });
|
|
13
13
|
Object.defineProperty(exports, "useWorkflowState", { enumerable: true, get: function () { return hooks_1.useWorkflowState; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runReasonEngine = void 0;
|
|
4
|
+
var reason_engine_1 = require("./reason-engine");
|
|
5
|
+
Object.defineProperty(exports, "runReasonEngine", { enumerable: true, get: function () { return reason_engine_1.runReasonEngine; } });
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GetProviderFn, ProviderModelRef } from "@kortyx/providers";
|
|
2
|
+
export interface RunReasonEngineArgs {
|
|
3
|
+
getProvider: GetProviderFn;
|
|
4
|
+
model: ProviderModelRef;
|
|
5
|
+
input: string;
|
|
6
|
+
system?: string | undefined;
|
|
7
|
+
temperature?: number | undefined;
|
|
8
|
+
defaultTemperature?: number | undefined;
|
|
9
|
+
stream?: boolean | undefined;
|
|
10
|
+
emit?: boolean | undefined;
|
|
11
|
+
nodeId?: string | undefined;
|
|
12
|
+
emitEvent?: ((event: string, payload: unknown) => void) | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface RunReasonEngineResult {
|
|
15
|
+
text: string;
|
|
16
|
+
raw?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export declare function runReasonEngine(args: RunReasonEngineArgs): Promise<RunReasonEngineResult>;
|
|
19
|
+
//# sourceMappingURL=reason-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reason-engine.d.ts","sourceRoot":"","sources":["../src/reason-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAGb,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,aAAa,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrE;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAwBD,wBAAsB,eAAe,CACnC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAoEhC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runReasonEngine = runReasonEngine;
|
|
4
|
+
const chunkToText = (chunk) => {
|
|
5
|
+
if (typeof chunk === "string")
|
|
6
|
+
return chunk;
|
|
7
|
+
if (typeof chunk.text === "string")
|
|
8
|
+
return chunk.text;
|
|
9
|
+
if (typeof chunk.content === "string")
|
|
10
|
+
return chunk.content;
|
|
11
|
+
return "";
|
|
12
|
+
};
|
|
13
|
+
const emitNodeEvent = (emitEvent, nodeId, event, payload) => {
|
|
14
|
+
if (!emitEvent)
|
|
15
|
+
return;
|
|
16
|
+
emitEvent(event, {
|
|
17
|
+
...payload,
|
|
18
|
+
...(typeof nodeId === "string" && nodeId.length > 0
|
|
19
|
+
? { node: nodeId }
|
|
20
|
+
: {}),
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
async function runReasonEngine(args) {
|
|
24
|
+
const stream = args.stream ?? args.model.options?.streaming ?? true;
|
|
25
|
+
const emit = args.emit ?? true;
|
|
26
|
+
const temperature = args.temperature ??
|
|
27
|
+
args.model.options?.temperature ??
|
|
28
|
+
args.defaultTemperature;
|
|
29
|
+
const model = args.getProvider(args.model.providerId, args.model.modelId, {
|
|
30
|
+
...(temperature !== undefined ? { temperature } : {}),
|
|
31
|
+
streaming: stream,
|
|
32
|
+
});
|
|
33
|
+
const messages = [];
|
|
34
|
+
if (typeof args.system === "string" && args.system.length > 0) {
|
|
35
|
+
messages.push({ role: "system", content: args.system });
|
|
36
|
+
}
|
|
37
|
+
messages.push({ role: "user", content: String(args.input ?? "") });
|
|
38
|
+
if (stream) {
|
|
39
|
+
let final = "";
|
|
40
|
+
let raw;
|
|
41
|
+
if (emit) {
|
|
42
|
+
emitNodeEvent(args.emitEvent, args.nodeId, "text-start", {});
|
|
43
|
+
}
|
|
44
|
+
const response = await model.stream(messages);
|
|
45
|
+
for await (const chunk of response) {
|
|
46
|
+
const text = chunkToText(chunk);
|
|
47
|
+
if (!text)
|
|
48
|
+
continue;
|
|
49
|
+
final += text;
|
|
50
|
+
if (typeof chunk === "object" && chunk && "raw" in chunk) {
|
|
51
|
+
raw = chunk.raw;
|
|
52
|
+
}
|
|
53
|
+
if (emit) {
|
|
54
|
+
emitNodeEvent(args.emitEvent, args.nodeId, "text-delta", {
|
|
55
|
+
delta: text,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (emit) {
|
|
60
|
+
emitNodeEvent(args.emitEvent, args.nodeId, "text-end", {});
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
text: final,
|
|
64
|
+
...(raw !== undefined ? { raw } : {}),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const response = await model.invoke(messages);
|
|
68
|
+
if (emit) {
|
|
69
|
+
emitNodeEvent(args.emitEvent, args.nodeId, "text-start", {});
|
|
70
|
+
if (response.content) {
|
|
71
|
+
emitNodeEvent(args.emitEvent, args.nodeId, "text-delta", {
|
|
72
|
+
delta: response.content,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
emitNodeEvent(args.emitEvent, args.nodeId, "text-end", {});
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
text: response.content,
|
|
79
|
+
...(response.raw !== undefined ? { raw: response.raw } : {}),
|
|
80
|
+
};
|
|
81
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kortyx/hooks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Lifecycle hooks and extension points for Kortyx.",
|
|
6
6
|
"keywords": [
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
".": {
|
|
25
25
|
"types": "./dist/index.d.ts",
|
|
26
26
|
"default": "./dist/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./internal": {
|
|
29
|
+
"types": "./dist/internal.d.ts",
|
|
30
|
+
"default": "./dist/internal.js"
|
|
27
31
|
}
|
|
28
32
|
},
|
|
29
33
|
"files": [
|