sonamu 0.7.11 → 0.7.13
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/dist/api/config.d.ts +10 -6
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +2 -1
- package/dist/api/sonamu.d.ts +4 -0
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +49 -5
- package/dist/bin/cli.js +118 -170
- package/dist/database/base-model.d.ts +10 -50
- package/dist/database/base-model.d.ts.map +1 -1
- package/dist/database/base-model.js +19 -84
- package/dist/database/base-model.types.d.ts +4 -4
- package/dist/database/base-model.types.d.ts.map +1 -1
- package/dist/database/base-model.types.js +1 -1
- package/dist/database/db.d.ts +1 -0
- package/dist/database/db.d.ts.map +1 -1
- package/dist/database/db.js +24 -13
- package/dist/database/puri-subset.test-d.js +1 -1
- package/dist/database/puri-subset.types.d.ts +1 -0
- package/dist/database/puri-subset.types.d.ts.map +1 -1
- package/dist/database/puri-subset.types.js +2 -2
- package/dist/database/puri.d.ts +82 -3
- package/dist/database/puri.d.ts.map +1 -1
- package/dist/database/puri.js +180 -14
- package/dist/database/puri.types.d.ts +33 -6
- package/dist/database/puri.types.d.ts.map +1 -1
- package/dist/database/puri.types.js +1 -1
- package/dist/database/puri.types.test-d.js +1 -1
- package/dist/entity/entity-manager.d.ts +5 -4
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +8 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +33 -2
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +53 -22
- package/dist/naite/messaging-types.d.ts.map +1 -1
- package/dist/naite/messaging-types.js +1 -1
- package/dist/naite/naite.js +2 -2
- package/dist/stream/sse.d.ts +2 -6
- package/dist/stream/sse.d.ts.map +1 -1
- package/dist/stream/sse.js +9 -3
- package/dist/syncer/api-parser.d.ts.map +1 -1
- package/dist/syncer/api-parser.js +7 -2
- package/dist/syncer/file-patterns.d.ts +1 -1
- package/dist/syncer/file-patterns.d.ts.map +1 -1
- package/dist/syncer/file-patterns.js +6 -5
- package/dist/syncer/module-loader.d.ts +5 -0
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +17 -1
- package/dist/syncer/syncer.d.ts +5 -1
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +28 -19
- package/dist/tasks/decorator.d.ts +26 -0
- package/dist/tasks/decorator.d.ts.map +1 -0
- package/dist/tasks/decorator.js +28 -0
- package/dist/tasks/step-wrapper.d.ts +18 -0
- package/dist/tasks/step-wrapper.d.ts.map +1 -0
- package/dist/tasks/step-wrapper.js +38 -0
- package/dist/tasks/workflow-manager.d.ts +40 -0
- package/dist/tasks/workflow-manager.d.ts.map +1 -0
- package/dist/tasks/workflow-manager.js +193 -0
- package/dist/template/implementations/generated.template.d.ts.map +1 -1
- package/dist/template/implementations/generated.template.js +7 -3
- package/dist/types/types.d.ts +26 -10
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +15 -2
- package/dist/ui/ai-api.d.ts +1 -0
- package/dist/ui/ai-api.d.ts.map +1 -0
- package/dist/ui/ai-api.js +50 -0
- package/dist/ui/ai-client.d.ts +1 -0
- package/dist/ui/ai-client.d.ts.map +1 -0
- package/dist/ui/ai-client.js +438 -0
- package/dist/ui/api.d.ts +3 -0
- package/dist/ui/api.d.ts.map +1 -0
- package/dist/ui/api.js +680 -0
- package/dist/ui-web/assets/brand-icons-Cu_C0hZ4.svg +1008 -0
- package/dist/ui-web/assets/brand-icons-F3SPCeH1.woff +0 -0
- package/dist/ui-web/assets/brand-icons-XL9sxUpA.woff2 +0 -0
- package/dist/ui-web/assets/brand-icons-sqJ2Pg7a.eot +0 -0
- package/dist/ui-web/assets/brand-icons-ubhWoxly.ttf +0 -0
- package/dist/ui-web/assets/flags-DOLqOU7Y.png +0 -0
- package/dist/ui-web/assets/icons-BOCtAERH.woff +0 -0
- package/dist/ui-web/assets/icons-CHzK1VD9.eot +0 -0
- package/dist/ui-web/assets/icons-D29ZQHHw.ttf +0 -0
- package/dist/ui-web/assets/icons-Du6TOHnR.woff2 +0 -0
- package/dist/ui-web/assets/icons-RwhydX30.svg +1518 -0
- package/dist/ui-web/assets/index-CpaB9P6g.css +1 -0
- package/dist/ui-web/assets/index-J9MCfjCd.js +95 -0
- package/dist/ui-web/assets/outline-icons-BfdLr8tr.svg +366 -0
- package/dist/ui-web/assets/outline-icons-DD8jm0uy.ttf +0 -0
- package/dist/ui-web/assets/outline-icons-DInHoiqI.woff2 +0 -0
- package/dist/ui-web/assets/outline-icons-LX8adJ4n.eot +0 -0
- package/dist/ui-web/assets/outline-icons-aQ88nltS.woff +0 -0
- package/dist/ui-web/assets/provider-utils_false-BKJD46kk.js +1 -0
- package/dist/ui-web/assets/provider-utils_false-Bu5lmX18.js +1 -0
- package/dist/ui-web/index.html +13 -0
- package/dist/ui-web/vite.svg +1 -0
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +10 -2
- package/dist/utils/model.d.ts +9 -2
- package/dist/utils/model.d.ts.map +1 -1
- package/dist/utils/model.js +16 -1
- package/dist/utils/type-utils.d.ts.map +1 -1
- package/dist/utils/type-utils.js +3 -1
- package/dist/vector/embedding.d.ts +2 -5
- package/dist/vector/embedding.d.ts.map +1 -1
- package/dist/vector/embedding.js +9 -13
- package/dist/vector/types.d.ts.map +1 -1
- package/dist/vector/types.js +1 -1
- package/package.json +9 -5
- package/src/api/config.ts +15 -11
- package/src/api/sonamu.ts +60 -6
- package/src/bin/cli.ts +57 -119
- package/src/database/base-model.ts +21 -128
- package/src/database/base-model.types.ts +3 -4
- package/src/database/db.ts +28 -18
- package/src/database/puri-subset.test-d.ts +1 -0
- package/src/database/puri-subset.types.ts +2 -0
- package/src/database/puri.ts +238 -27
- package/src/database/puri.types.test-d.ts +1 -1
- package/src/database/puri.types.ts +49 -6
- package/src/entity/entity-manager.ts +9 -0
- package/src/index.ts +1 -1
- package/src/migration/code-generation.ts +40 -1
- package/src/migration/postgresql-schema-reader.ts +53 -22
- package/src/naite/messaging-types.ts +43 -44
- package/src/naite/naite.ts +1 -1
- package/src/shared/app.shared.ts.txt +13 -0
- package/src/shared/web.shared.ts.txt +13 -0
- package/src/stream/sse.ts +15 -3
- package/src/syncer/api-parser.ts +6 -1
- package/src/syncer/file-patterns.ts +11 -9
- package/src/syncer/module-loader.ts +35 -0
- package/src/syncer/syncer.ts +34 -21
- package/src/tasks/decorator.ts +71 -0
- package/src/tasks/step-wrapper.ts +84 -0
- package/src/tasks/workflow-manager.ts +330 -0
- package/src/template/implementations/generated.template.ts +19 -6
- package/src/types/types.ts +20 -4
- package/src/ui/ai-api.ts +60 -0
- package/src/ui/ai-client.ts +499 -0
- package/src/ui/api.ts +786 -0
- package/src/utils/formatter.ts +8 -1
- package/src/utils/model.ts +26 -2
- package/src/utils/type-utils.ts +2 -0
- package/src/vector/embedding.ts +10 -14
- package/src/vector/types.ts +1 -2
- package/dist/vector/vector-search.d.ts +0 -47
- package/dist/vector/vector-search.d.ts.map +0 -1
- package/dist/vector/vector-search.js +0 -176
- package/src/vector/vector-search.ts +0 -261
package/dist/utils/formatter.js
CHANGED
|
@@ -104,7 +104,15 @@ export function formatCode(code, parser, filePath) {
|
|
|
104
104
|
throw new Error("Biome lint error");
|
|
105
105
|
}
|
|
106
106
|
Naite.t("formatCode:linted", linted);
|
|
107
|
-
|
|
107
|
+
// 포맷팅 한 번 더 (import 구문에 type 키워드 추가되는 경우 maxWidth 초과로 인한 에러 발생)
|
|
108
|
+
const formattedAgain = biome.formatContent(projectKey, linted.content, {
|
|
109
|
+
filePath
|
|
110
|
+
});
|
|
111
|
+
if (formattedAgain.diagnostics.filter((d)=>d.severity === "error").length > 0) {
|
|
112
|
+
console.error(formattedAgain.diagnostics);
|
|
113
|
+
throw new Error("Biome format error");
|
|
114
|
+
}
|
|
115
|
+
return formattedAgain.content;
|
|
108
116
|
}
|
|
109
117
|
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmlvbWUgfSBmcm9tIFwiQGJpb21lanMvanMtYXBpL25vZGVqc1wiO1xuaW1wb3J0IHsgTmFpdGUgfSBmcm9tIFwiLi4vbmFpdGUvbmFpdGVcIjtcbmltcG9ydCB7IGlzVGVzdCB9IGZyb20gXCIuL2NvbnRyb2xsZXJcIjtcblxuY29uc3QgYmlvbWUgPSBuZXcgQmlvbWUoKTtcbmxldCBwcm9qZWN0S2V5OiBudW1iZXIgPSAtMTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwQmlvbWUocGF0aDogc3RyaW5nKSB7XG4gIGlmIChwcm9qZWN0S2V5ICE9PSAtMSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHByb2plY3RLZXkgPSBiaW9tZS5vcGVuUHJvamVjdChwYXRoKS5wcm9qZWN0S2V5O1xuICBiaW9tZS5hcHBseUNvbmZpZ3VyYXRpb24ocHJvamVjdEtleSwge1xuICAgIGZvcm1hdHRlcjoge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIGZvcm1hdFdpdGhFcnJvcnM6IGZhbHNlLFxuICAgICAgaW5kZW50U3R5bGU6IFwic3BhY2VcIixcbiAgICAgIGluZGVudFdpZHRoOiAyLFxuICAgICAgbGluZUVuZGluZzogXCJsZlwiLFxuICAgICAgbGluZVdpZHRoOiAxMDAsXG4gICAgICBhdHRyaWJ1dGVQb3NpdGlvbjogXCJhdXRvXCIsXG4gICAgfSxcbiAgICBsaW50ZXI6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBydWxlczoge1xuICAgICAgICByZWNvbW1lbmRlZDogdHJ1ZSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICB1c2VOb2RlanNJbXBvcnRQcm90b2NvbDogXCJvZmZcIixcbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdG5lc3M6IHtcbiAgICAgICAgICB1c2VQYXJzZUludFJhZGl4OiBcIm9mZlwiLFxuICAgICAgICAgIG5vRW1wdHlQYXR0ZXJuOiBcIm9mZlwiLFxuICAgICAgICAgIG5vVW51c2VkSW1wb3J0czoge1xuICAgICAgICAgICAgbGV2ZWw6IFwid2FyblwiLFxuICAgICAgICAgICAgZml4OiBcInNhZmVcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhMTF5OiB7XG4gICAgICAgICAgbm9MYWJlbFdpdGhvdXRDb250cm9sOiBcIm9mZlwiLFxuICAgICAgICB9LFxuICAgICAgICBjb21wbGV4aXR5OiB7XG4gICAgICAgICAgbm9CYW5uZWRUeXBlczogXCJvZmZcIixcbiAgICAgICAgfSxcbiAgICAgICAgc3VzcGljaW91czoge1xuICAgICAgICAgIG5vQXJyYXlJbmRleEtleTogXCJvZmZcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBqYXZhc2NyaXB0OiB7XG4gICAgICBmb3JtYXR0ZXI6IHtcbiAgICAgICAganN4UXVvdGVTdHlsZTogXCJkb3VibGVcIixcbiAgICAgICAgcXVvdGVQcm9wZXJ0aWVzOiBcImFzTmVlZGVkXCIsXG4gICAgICAgIHRyYWlsaW5nQ29tbWFzOiBcImFsbFwiLFxuICAgICAgICBzZW1pY29sb25zOiBcImFsd2F5c1wiLFxuICAgICAgICBhcnJvd1BhcmVudGhlc2VzOiBcImFsd2F5c1wiLFxuICAgICAgICBicmFja2V0U3BhY2luZzogdHJ1ZSxcbiAgICAgICAgYnJhY2tldFNhbWVMaW5lOiBmYWxzZSxcbiAgICAgICAgcXVvdGVTdHlsZTogXCJkb3VibGVcIixcbiAgICAgICAgYXR0cmlidXRlUG9zaXRpb246IFwiYXV0b1wiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGpzb246IHtcbiAgICAgIGZvcm1hdHRlcjoge1xuICAgICAgICBpbmRlbnRXaWR0aDogMixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhc3Npc3Q6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIG9yZ2FuaXplSW1wb3J0czogXCJvblwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENvZGUoY29kZTogc3RyaW5nLCBwYXJzZXI6IFwidHlwZXNjcmlwdFwiIHwgXCJqc29uXCIsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgTmFpdGUudChcImZvcm1hdENvZGVcIiwgeyBjb2RlLCBwYXJzZXIgfSk7XG5cbiAgaWYgKHByb2plY3RLZXkgPT09IC0xKSB7XG4gICAgY29uc29sZS53YXJuKFwiQmlvbWUgaXMgbm90IHNldHVwLiBQbGVhc2UgY2FsbCBzZXR1cEJpb21lIGZpcnN0LlwiKTtcbiAgICByZXR1cm4gY29kZTtcbiAgfVxuXG4gIC8vIO2PrOunt+2MheydhCDrqLzsoIAg7ZW07JW87ZWoXG4gIGNvbnN0IGZvcm1hdHRlZCA9IGJpb21lLmZvcm1hdENvbnRlbnQocHJvamVjdEtleSwgY29kZSwgeyBmaWxlUGF0aCB9KTtcbiAgTmFpdGUudChcImZvcm1hdENvZGU6Zm9ybWF0dGVkXCIsIGZvcm1hdHRlZCk7XG4gIGlmIChmb3JtYXR0ZWQuZGlhZ25vc3RpY3MuZmlsdGVyKChkKSA9PiBkLnNldmVyaXR5ID09PSBcImVycm9yXCIpLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmVycm9yKGZvcm1hdHRlZC5kaWFnbm9zdGljcyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQmlvbWUgZm9ybWF0IGVycm9yXCIpO1xuICB9XG5cbiAgLy8g66aw7YyF7J2EIOq3uCDri6TsnYzsl5BcbiAgY29uc3QgbGludGVkID0gYmlvbWUubGludENvbnRlbnQocHJvamVjdEtleSwgZm9ybWF0dGVkLmNvbnRlbnQsIHtcbiAgICBmaWxlUGF0aCxcbiAgICBmaXhGaWxlTW9kZTogXCJzYWZlQW5kVW5zYWZlRml4ZXNcIixcbiAgfSk7XG4gIGlmIChsaW50ZWQuZGlhZ25vc3RpY3MuZmlsdGVyKChkKSA9PiBkLnNldmVyaXR5ID09PSBcImVycm9yXCIpLmxlbmd0aCA+
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmlvbWUgfSBmcm9tIFwiQGJpb21lanMvanMtYXBpL25vZGVqc1wiO1xuaW1wb3J0IHsgTmFpdGUgfSBmcm9tIFwiLi4vbmFpdGUvbmFpdGVcIjtcbmltcG9ydCB7IGlzVGVzdCB9IGZyb20gXCIuL2NvbnRyb2xsZXJcIjtcblxuY29uc3QgYmlvbWUgPSBuZXcgQmlvbWUoKTtcbmxldCBwcm9qZWN0S2V5OiBudW1iZXIgPSAtMTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwQmlvbWUocGF0aDogc3RyaW5nKSB7XG4gIGlmIChwcm9qZWN0S2V5ICE9PSAtMSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHByb2plY3RLZXkgPSBiaW9tZS5vcGVuUHJvamVjdChwYXRoKS5wcm9qZWN0S2V5O1xuICBiaW9tZS5hcHBseUNvbmZpZ3VyYXRpb24ocHJvamVjdEtleSwge1xuICAgIGZvcm1hdHRlcjoge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIGZvcm1hdFdpdGhFcnJvcnM6IGZhbHNlLFxuICAgICAgaW5kZW50U3R5bGU6IFwic3BhY2VcIixcbiAgICAgIGluZGVudFdpZHRoOiAyLFxuICAgICAgbGluZUVuZGluZzogXCJsZlwiLFxuICAgICAgbGluZVdpZHRoOiAxMDAsXG4gICAgICBhdHRyaWJ1dGVQb3NpdGlvbjogXCJhdXRvXCIsXG4gICAgfSxcbiAgICBsaW50ZXI6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBydWxlczoge1xuICAgICAgICByZWNvbW1lbmRlZDogdHJ1ZSxcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICB1c2VOb2RlanNJbXBvcnRQcm90b2NvbDogXCJvZmZcIixcbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdG5lc3M6IHtcbiAgICAgICAgICB1c2VQYXJzZUludFJhZGl4OiBcIm9mZlwiLFxuICAgICAgICAgIG5vRW1wdHlQYXR0ZXJuOiBcIm9mZlwiLFxuICAgICAgICAgIG5vVW51c2VkSW1wb3J0czoge1xuICAgICAgICAgICAgbGV2ZWw6IFwid2FyblwiLFxuICAgICAgICAgICAgZml4OiBcInNhZmVcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhMTF5OiB7XG4gICAgICAgICAgbm9MYWJlbFdpdGhvdXRDb250cm9sOiBcIm9mZlwiLFxuICAgICAgICB9LFxuICAgICAgICBjb21wbGV4aXR5OiB7XG4gICAgICAgICAgbm9CYW5uZWRUeXBlczogXCJvZmZcIixcbiAgICAgICAgfSxcbiAgICAgICAgc3VzcGljaW91czoge1xuICAgICAgICAgIG5vQXJyYXlJbmRleEtleTogXCJvZmZcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBqYXZhc2NyaXB0OiB7XG4gICAgICBmb3JtYXR0ZXI6IHtcbiAgICAgICAganN4UXVvdGVTdHlsZTogXCJkb3VibGVcIixcbiAgICAgICAgcXVvdGVQcm9wZXJ0aWVzOiBcImFzTmVlZGVkXCIsXG4gICAgICAgIHRyYWlsaW5nQ29tbWFzOiBcImFsbFwiLFxuICAgICAgICBzZW1pY29sb25zOiBcImFsd2F5c1wiLFxuICAgICAgICBhcnJvd1BhcmVudGhlc2VzOiBcImFsd2F5c1wiLFxuICAgICAgICBicmFja2V0U3BhY2luZzogdHJ1ZSxcbiAgICAgICAgYnJhY2tldFNhbWVMaW5lOiBmYWxzZSxcbiAgICAgICAgcXVvdGVTdHlsZTogXCJkb3VibGVcIixcbiAgICAgICAgYXR0cmlidXRlUG9zaXRpb246IFwiYXV0b1wiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGpzb246IHtcbiAgICAgIGZvcm1hdHRlcjoge1xuICAgICAgICBpbmRlbnRXaWR0aDogMixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhc3Npc3Q6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIG9yZ2FuaXplSW1wb3J0czogXCJvblwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENvZGUoY29kZTogc3RyaW5nLCBwYXJzZXI6IFwidHlwZXNjcmlwdFwiIHwgXCJqc29uXCIsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgTmFpdGUudChcImZvcm1hdENvZGVcIiwgeyBjb2RlLCBwYXJzZXIgfSk7XG5cbiAgaWYgKHByb2plY3RLZXkgPT09IC0xKSB7XG4gICAgY29uc29sZS53YXJuKFwiQmlvbWUgaXMgbm90IHNldHVwLiBQbGVhc2UgY2FsbCBzZXR1cEJpb21lIGZpcnN0LlwiKTtcbiAgICByZXR1cm4gY29kZTtcbiAgfVxuXG4gIC8vIO2PrOunt+2MheydhCDrqLzsoIAg7ZW07JW87ZWoXG4gIGNvbnN0IGZvcm1hdHRlZCA9IGJpb21lLmZvcm1hdENvbnRlbnQocHJvamVjdEtleSwgY29kZSwgeyBmaWxlUGF0aCB9KTtcbiAgTmFpdGUudChcImZvcm1hdENvZGU6Zm9ybWF0dGVkXCIsIGZvcm1hdHRlZCk7XG4gIGlmIChmb3JtYXR0ZWQuZGlhZ25vc3RpY3MuZmlsdGVyKChkKSA9PiBkLnNldmVyaXR5ID09PSBcImVycm9yXCIpLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmVycm9yKGZvcm1hdHRlZC5kaWFnbm9zdGljcyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQmlvbWUgZm9ybWF0IGVycm9yXCIpO1xuICB9XG5cbiAgLy8g66aw7YyF7J2EIOq3uCDri6TsnYzsl5BcbiAgY29uc3QgbGludGVkID0gYmlvbWUubGludENvbnRlbnQocHJvamVjdEtleSwgZm9ybWF0dGVkLmNvbnRlbnQsIHtcbiAgICBmaWxlUGF0aCxcbiAgICBmaXhGaWxlTW9kZTogXCJzYWZlQW5kVW5zYWZlRml4ZXNcIixcbiAgfSk7XG4gIGlmIChsaW50ZWQuZGlhZ25vc3RpY3MuZmlsdGVyKChkKSA9PiBkLnNldmVyaXR5ID09PSBcImVycm9yXCIpLmxlbmd0aCA+IDApIHtcbiAgICBOYWl0ZS50KFwiZm9ybWF0Q29kZTpsaW50ZWQ6Y29udGVudFwiLCBsaW50ZWQuY29udGVudCk7XG4gICAgTmFpdGUudChcImZvcm1hdENvZGU6bGludGVkOmRpYWdub3N0aWNzXCIsIGxpbnRlZC5kaWFnbm9zdGljcyk7XG4gICAgIWlzVGVzdCgpICYmIGNvbnNvbGUuZGlyKGxpbnRlZC5kaWFnbm9zdGljcywgeyBkZXB0aDogbnVsbCB9KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJCaW9tZSBsaW50IGVycm9yXCIpO1xuICB9XG4gIE5haXRlLnQoXCJmb3JtYXRDb2RlOmxpbnRlZFwiLCBsaW50ZWQpO1xuXG4gIC8vIO2PrOunt+2MhSDtlZwg67KIIOuNlCAoaW1wb3J0IOq1rOusuOyXkCB0eXBlIO2CpOybjOuTnCDstpTqsIDrkJjripQg6rK97JqwIG1heFdpZHRoIOy0iOqzvOuhnCDsnbjtlZwg7JeQ65+sIOuwnOyDnSlcbiAgY29uc3QgZm9ybWF0dGVkQWdhaW4gPSBiaW9tZS5mb3JtYXRDb250ZW50KHByb2plY3RLZXksIGxpbnRlZC5jb250ZW50LCB7IGZpbGVQYXRoIH0pO1xuICBpZiAoZm9ybWF0dGVkQWdhaW4uZGlhZ25vc3RpY3MuZmlsdGVyKChkKSA9PiBkLnNldmVyaXR5ID09PSBcImVycm9yXCIpLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmVycm9yKGZvcm1hdHRlZEFnYWluLmRpYWdub3N0aWNzKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJCaW9tZSBmb3JtYXQgZXJyb3JcIik7XG4gIH1cblxuICByZXR1cm4gZm9ybWF0dGVkQWdhaW4uY29udGVudDtcbn1cbiJdLCJuYW1lcyI6WyJCaW9tZSIsIk5haXRlIiwiaXNUZXN0IiwiYmlvbWUiLCJwcm9qZWN0S2V5Iiwic2V0dXBCaW9tZSIsInBhdGgiLCJvcGVuUHJvamVjdCIsImFwcGx5Q29uZmlndXJhdGlvbiIsImZvcm1hdHRlciIsImVuYWJsZWQiLCJmb3JtYXRXaXRoRXJyb3JzIiwiaW5kZW50U3R5bGUiLCJpbmRlbnRXaWR0aCIsImxpbmVFbmRpbmciLCJsaW5lV2lkdGgiLCJhdHRyaWJ1dGVQb3NpdGlvbiIsImxpbnRlciIsInJ1bGVzIiwicmVjb21tZW5kZWQiLCJzdHlsZSIsInVzZU5vZGVqc0ltcG9ydFByb3RvY29sIiwiY29ycmVjdG5lc3MiLCJ1c2VQYXJzZUludFJhZGl4Iiwibm9FbXB0eVBhdHRlcm4iLCJub1VudXNlZEltcG9ydHMiLCJsZXZlbCIsImZpeCIsImExMXkiLCJub0xhYmVsV2l0aG91dENvbnRyb2wiLCJjb21wbGV4aXR5Iiwibm9CYW5uZWRUeXBlcyIsInN1c3BpY2lvdXMiLCJub0FycmF5SW5kZXhLZXkiLCJqYXZhc2NyaXB0IiwianN4UXVvdGVTdHlsZSIsInF1b3RlUHJvcGVydGllcyIsInRyYWlsaW5nQ29tbWFzIiwic2VtaWNvbG9ucyIsImFycm93UGFyZW50aGVzZXMiLCJicmFja2V0U3BhY2luZyIsImJyYWNrZXRTYW1lTGluZSIsInF1b3RlU3R5bGUiLCJqc29uIiwiYXNzaXN0IiwiYWN0aW9ucyIsInNvdXJjZSIsIm9yZ2FuaXplSW1wb3J0cyIsImZvcm1hdENvZGUiLCJjb2RlIiwicGFyc2VyIiwiZmlsZVBhdGgiLCJ0IiwiY29uc29sZSIsIndhcm4iLCJmb3JtYXR0ZWQiLCJmb3JtYXRDb250ZW50IiwiZGlhZ25vc3RpY3MiLCJmaWx0ZXIiLCJkIiwic2V2ZXJpdHkiLCJsZW5ndGgiLCJlcnJvciIsIkVycm9yIiwibGludGVkIiwibGludENvbnRlbnQiLCJjb250ZW50IiwiZml4RmlsZU1vZGUiLCJkaXIiLCJkZXB0aCIsImZvcm1hdHRlZEFnYWluIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxLQUFLLFFBQVEseUJBQXlCO0FBQy9DLFNBQVNDLEtBQUssUUFBUSxvQkFBaUI7QUFDdkMsU0FBU0MsTUFBTSxRQUFRLGtCQUFlO0FBRXRDLE1BQU1DLFFBQVEsSUFBSUg7QUFDbEIsSUFBSUksYUFBcUIsQ0FBQztB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
|
package/dist/utils/model.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { SonamuQueryMode } from "..";
|
|
2
|
+
type WithSimilarity<LP, T> = LP extends {
|
|
3
|
+
semanticQuery: Record<string, unknown>;
|
|
4
|
+
} ? T & {
|
|
5
|
+
similarity: number;
|
|
6
|
+
} : T;
|
|
2
7
|
export type ListResult<LP extends {
|
|
3
8
|
queryMode?: SonamuQueryMode;
|
|
4
9
|
}, T> = LP["queryMode"] extends "list" ? {
|
|
5
|
-
rows: T[];
|
|
10
|
+
rows: WithSimilarity<LP, T>[];
|
|
6
11
|
} : LP["queryMode"] extends "count" ? {
|
|
7
12
|
total: number;
|
|
8
13
|
} : {
|
|
9
|
-
rows: T[];
|
|
14
|
+
rows: WithSimilarity<LP, T>[];
|
|
10
15
|
total: number;
|
|
11
16
|
};
|
|
12
17
|
export type ArrayOr<T> = T | T[];
|
|
@@ -20,5 +25,7 @@ export interface BaseListParams {
|
|
|
20
25
|
page?: number;
|
|
21
26
|
keyword?: string;
|
|
22
27
|
queryMode?: "list" | "count" | "both";
|
|
28
|
+
semanticQuery?: Record<string, unknown>;
|
|
23
29
|
}
|
|
30
|
+
export {};
|
|
24
31
|
//# sourceMappingURL=model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAG1C,KAAK,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS;IAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9E,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1B,CAAC,CAAC;AAEN,MAAM,MAAM,UAAU,CACpB,EAAE,SAAS;IAAE,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1C,CAAC,IACC,EAAE,CAAC,WAAW,CAAC,SAAS,MAAM,GAC9B;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;CAAE,GACjC,EAAE,CAAC,WAAW,CAAC,SAAS,OAAO,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAEjC,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAM9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,mCAOlD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC"}
|
package/dist/utils/model.js
CHANGED
|
@@ -18,5 +18,20 @@ export function objToMap(obj) {
|
|
|
18
18
|
return new Map(Object.entries(obj));
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
// const a: ListResult<{ queryMode: "list"; semanticQuery: {} }, { id: number; name: string }> = {
|
|
22
|
+
// rows: [{ id: 1, name: "test", similarity: 0.5 }],
|
|
23
|
+
// };
|
|
24
|
+
// a.rows[0].similarity;
|
|
25
|
+
// // const b: ListResult<{ queryMode: "count" }, { id: number; name: string }> = {
|
|
26
|
+
// // total: 1,
|
|
27
|
+
// // };
|
|
28
|
+
// const c: ListResult<
|
|
29
|
+
// { queryMode: "both"; semanticQuery: { embedding: number[] } },
|
|
30
|
+
// { id: number; name: string }
|
|
31
|
+
// > = {
|
|
32
|
+
// rows: [{ id: 1, name: "test", similarity: 0.5 }],
|
|
33
|
+
// total: 1,
|
|
34
|
+
// };
|
|
35
|
+
// c.rows[0].similarity;
|
|
21
36
|
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNvbmFtdVF1ZXJ5TW9kZSB9IGZyb20gXCIuLlwiO1xuXG4vLyBzZW1hbnRpY1F1ZXJ56rCAIOyeiOycvOuptCBzaW1pbGFyaXR566W8IOy2lOqwgO2VmOuKlCDsobDqsbTrtoAg7YOA7J6FXG50eXBlIFdpdGhTaW1pbGFyaXR5PExQLCBUPiA9IExQIGV4dGVuZHMgeyBzZW1hbnRpY1F1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9XG4gID8gVCAmIHsgc2ltaWxhcml0eTogbnVtYmVyIH1cbiAgOiBUO1xuXG5leHBvcnQgdHlwZSBMaXN0UmVzdWx0PFxuICBMUCBleHRlbmRzIHsgcXVlcnlNb2RlPzogU29uYW11UXVlcnlNb2RlIH0sXG4gIFQsXG4+ID0gTFBbXCJxdWVyeU1vZGVcIl0gZXh0ZW5kcyBcImxpc3RcIlxuICA/IHsgcm93czogV2l0aFNpbWlsYXJpdHk8TFAsIFQ+W10gfVxuICA6IExQW1wicXVlcnlNb2RlXCJdIGV4dGVuZHMgXCJjb3VudFwiXG4gICAgPyB7IHRvdGFsOiBudW1iZXIgfVxuICAgIDogeyByb3dzOiBXaXRoU2ltaWxhcml0eTxMUCwgVD5bXTsgdG90YWw6IG51bWJlciB9O1xuXG5leHBvcnQgdHlwZSBBcnJheU9yPFQ+ID0gVCB8IFRbXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFzQXJyYXk8VD4ocGFyYW06IFQgfCBUW10pOiBUW10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbSkpIHtcbiAgICByZXR1cm4gcGFyYW07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtwYXJhbSBhcyBUXSBhcyBUW107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ialRvTWFwPFQ+KG9iajogeyBbazogc3RyaW5nXTogVCB9KSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBpZiAoa2V5cy5ldmVyeSgoa2V5KSA9PiBwYXJzZUludChrZXkpLnRvU3RyaW5nKCkgPT09IGtleSkpIHtcbiAgICByZXR1cm4gbmV3IE1hcDxudW1iZXIsIFQ+KGtleXMubWFwKChrZXkpID0+IFtwYXJzZUludChrZXkpLCBvYmpba2V5XV0pKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIFQ+KE9iamVjdC5lbnRyaWVzKG9iaikpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUxpc3RQYXJhbXMge1xuICBpZD86IG51bWJlciB8IG51bWJlcltdO1xuICBudW0/OiBudW1iZXI7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIGtleXdvcmQ/OiBzdHJpbmc7XG4gIHF1ZXJ5TW9kZT86IFwibGlzdFwiIHwgXCJjb3VudFwiIHwgXCJib3RoXCI7XG4gIHNlbWFudGljUXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gY29uc3QgYTogTGlzdFJlc3VsdDx7IHF1ZXJ5TW9kZTogXCJsaXN0XCI7IHNlbWFudGljUXVlcnk6IHt9IH0sIHsgaWQ6IG51bWJlcjsgbmFtZTogc3RyaW5nIH0+ID0ge1xuLy8gICByb3dzOiBbeyBpZDogMSwgbmFtZTogXCJ0ZXN0XCIsIHNpbWlsYXJpdHk6IDAuNSB9XSxcbi8vIH07XG4vLyBhLnJvd3NbMF0uc2ltaWxhcml0eTtcblxuLy8gLy8gY29uc3QgYjogTGlzdFJlc3VsdDx7IHF1ZXJ5TW9kZTogXCJjb3VudFwiIH0sIHsgaWQ6IG51bWJlcjsgbmFtZTogc3RyaW5nIH0+ID0ge1xuLy8gLy8gICB0b3RhbDogMSxcbi8vIC8vIH07XG5cbi8vIGNvbnN0IGM6IExpc3RSZXN1bHQ8XG4vLyAgIHsgcXVlcnlNb2RlOiBcImJvdGhcIjsgc2VtYW50aWNRdWVyeTogeyBlbWJlZGRpbmc6IG51bWJlcltdIH0gfSxcbi8vICAgeyBpZDogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfVxuLy8gPiA9IHtcbi8vICAgcm93czogW3sgaWQ6IDEsIG5hbWU6IFwidGVzdFwiLCBzaW1pbGFyaXR5OiAwLjUgfV0sXG4vLyAgIHRvdGFsOiAxLFxuLy8gfTtcbi8vIGMucm93c1swXS5zaW1pbGFyaXR5O1xuIl0sIm5hbWVzIjpbImFzQXJyYXkiLCJwYXJhbSIsIkFycmF5IiwiaXNBcnJheSIsIm9ialRvTWFwIiwib2JqIiwia2V5cyIsIk9iamVjdCIsImV2ZXJ5Iiwia2V5IiwicGFyc2VJbnQiLCJ0b1N0cmluZyIsIk1hcCIsIm1hcCIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLFNBQVNBLFFBQVdDLEtBQWM7SUFDdkMsSUFBSUMsTUFBTUMsT0FBTyxDQUFDRixRQUFRO1FBQ3hCLE9BQU9BO0lBQ1QsT0FBTztRQUNMLE9BQU87WUFBQ0E7U0FBVztJQUNyQjtBQUNGO0FBRUEsT0FBTyxTQUFTRyxTQUFZQyxHQUF1QjtJQUNqRCxNQUFNQyxPQUFPQyxPQUFPRCxJQUFJLENBQUNEO0lBQ3pCLElBQUlDLEtBQUtFLEtBQUssQ0FBQyxDQUFDQyxNQUFRQyxTQUFTRCxLQUFLRSxRQUFRLE9BQU9GLE1BQU07UUFDekQsT0FBTyxJQUFJRyxJQUFlTixLQUFLTyxHQUFHLENBQUMsQ0FBQ0osTUFBUTtnQkFBQ0MsU0FBU0Q7Z0JBQU1KLEdBQUcsQ0FBQ0ksSUFBSTthQUFDO0lBQ3ZFLE9BQU87UUFDTCxPQUFPLElBQUlHLElBQWVMLE9BQU9PLE9BQU8sQ0FBQ1Q7SUFDM0M7QUFDRjtDQVdBLGtHQUFrRztDQUNsRyxzREFBc0Q7Q0FDdEQsS0FBSztDQUNMLHdCQUF3QjtDQUV4QixtRkFBbUY7Q0FDbkYsaUJBQWlCO0NBQ2pCLFFBQVE7Q0FFUix1QkFBdUI7Q0FDdkIsbUVBQW1FO0NBQ25FLGlDQUFpQztDQUNqQyxRQUFRO0NBQ1Isc0RBQXNEO0NBQ3RELGNBQWM7Q0FDZCxLQUFLO0NBQ0wsd0JBQXdCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AACA,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAGtE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACjE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAElB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GAClC,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KACJ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GACtB,CAAC,CAAC,GAAG,CAAC;CACX,CAAC,GAEF,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;CAAE,CAAC,GAElD,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAAE,CAAC,GAExD,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAAE,CAAC,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAC5D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AACA,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAGtE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACjE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAElB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GAClC,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KACJ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GACtB,CAAC,CAAC,GAAG,CAAC;CACX,CAAC,GAEF,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;CAAE,CAAC,GAElD,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAAE,CAAC,GAExD,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAAE,CAAC,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAC5D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAmClB;AAED,UAAU,YAAY,CAAC,CAAC;IAEtB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAG5E,KAAK,IAAI,CAAC,CAAC;CACZ;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQnE"}
|
package/dist/utils/type-utils.js
CHANGED
|
@@ -3,6 +3,7 @@ export function withProp(obj, path, value) {
|
|
|
3
3
|
const keys = path.split(".");
|
|
4
4
|
if (keys.length === 0) throw new Error("Path cannot be empty");
|
|
5
5
|
const result = structuredClone(obj);
|
|
6
|
+
// biome-ignore lint/suspicious/noExplicitAny: 범용 배열 요소 타입
|
|
6
7
|
const setDeep = (current, keys, value)=>{
|
|
7
8
|
if (keys.length === 0) return;
|
|
8
9
|
const [key, ...rest] = keys;
|
|
@@ -19,6 +20,7 @@ export function withProp(obj, path, value) {
|
|
|
19
20
|
current[key] = {};
|
|
20
21
|
}
|
|
21
22
|
if (Array.isArray(current[key])) {
|
|
23
|
+
// biome-ignore lint/suspicious/noExplicitAny: 범용 배열 요소 타입
|
|
22
24
|
current[key].forEach((item)=>{
|
|
23
25
|
setDeep(item, rest, value);
|
|
24
26
|
});
|
|
@@ -42,4 +44,4 @@ export function withProp(obj, path, value) {
|
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90eXBlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIO2DgOyeheydhCDtjrzss5DshJwg67O07Jes7KO864qUIOycoO2LuOumrO2LsCAo6rCd7LK07JeQ66eMIOyCrOyaqe2VtOyVvCDtlagpXG50eXBlIEV4cGFuZDxUPiA9IFQgZXh0ZW5kcyBpbmZlciBPID8geyBbSyBpbiBrZXlvZiBPXTogT1tLXSB9IDogbmV2ZXI7XG5cbi8vIO2VteyLrCDroZzsp4FcbnR5cGUgU2V0UGF0aDxULCBQIGV4dGVuZHMgc3RyaW5nLCBWPiA9IFQgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgVSlbXSAvLyBbU3RlcCAxXSDtmITsnqwg7YOA7J6F7J20IOuwsOyXtOyduOqwgD8gLT4g7JqU7IaMKFUp7JeQIOuMgO2VtCDsnqzqt4Ag7Zi47LacIO2bhCDrsLDsl7TroZwg6rCQ7IyIXG4gID8gU2V0UGF0aDxVLCBQLCBWPltdXG4gIDogLy8gW1N0ZXAgMl0g6rK966Gc6rCAIOygkCguKeycvOuhnCDrgpjriZjripTqsIA/XG4gICAgUCBleHRlbmRzIGAke2luZmVyIEt9LiR7aW5mZXIgUmVzdH1gXG4gICAgPyBLIGV4dGVuZHMga2V5b2YgVFxuICAgICAgPyAvLyBbU3RlcCAyLTFdIO2CpOqwgCDsobTsnqztlahcbiAgICAgICAgRXhwYW5kPHtcbiAgICAgICAgICBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBLXG4gICAgICAgICAgICA/IFNldFBhdGg8VFtLXSwgUmVzdCwgVj4gLy8g7J6s6reAIO2YuOy2nFxuICAgICAgICAgICAgOiBUW0tleV07XG4gICAgICAgIH0+XG4gICAgICA6IC8vIFtTdGVwIDItMl0g7YKk6rCAIOyXhuydjCAo7IOI66Gc7Jq0IOqwneyytCDqsr3roZwg7IOd7ISxKVxuICAgICAgICBFeHBhbmQ8VCAmIHsgW0tleSBpbiBLXTogU2V0UGF0aDx7fSwgUmVzdCwgVj4gfT5cbiAgICA6IC8vIFtTdGVwIDNdIOqyveuhnOydmCDrp4jsp4Drp4kgKEJhc2UgQ2FzZSlcbiAgICAgIFAgZXh0ZW5kcyBrZXlvZiBUXG4gICAgICA/IC8vIFtTdGVwIDMtMV0g6riw7KG0IO2CpCDrja7slrTsk7DquLAgKOq1kOywqCDtg4DsnoUgJiDrjIDsi6Ag7KGw6rG067aAIO2DgOyeheycvOuhnCDsmYTsoIQg6rWQ7LK0KVxuICAgICAgICBFeHBhbmQ8eyBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBQID8gViA6IFRbS2V5XSB9PlxuICAgICAgOiAvLyBbU3RlcCAzLTJdIOyDiCDtgqQg7LaU6rCAXG4gICAgICAgIEV4cGFuZDxUICYgeyBbS2V5IGluIFBdOiBWIH0+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFByb3A8VCBleHRlbmRzIG9iamVjdCwgUCBleHRlbmRzIHN0cmluZywgVj4oXG4gIG9iajogVCxcbiAgcGF0aDogUCxcbiAgdmFsdWU6IFYsXG4pOiBTZXRQYXRoPFQsIFAsIFY+
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90eXBlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIO2DgOyeheydhCDtjrzss5DshJwg67O07Jes7KO864qUIOycoO2LuOumrO2LsCAo6rCd7LK07JeQ66eMIOyCrOyaqe2VtOyVvCDtlagpXG50eXBlIEV4cGFuZDxUPiA9IFQgZXh0ZW5kcyBpbmZlciBPID8geyBbSyBpbiBrZXlvZiBPXTogT1tLXSB9IDogbmV2ZXI7XG5cbi8vIO2VteyLrCDroZzsp4FcbnR5cGUgU2V0UGF0aDxULCBQIGV4dGVuZHMgc3RyaW5nLCBWPiA9IFQgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgVSlbXSAvLyBbU3RlcCAxXSDtmITsnqwg7YOA7J6F7J20IOuwsOyXtOyduOqwgD8gLT4g7JqU7IaMKFUp7JeQIOuMgO2VtCDsnqzqt4Ag7Zi47LacIO2bhCDrsLDsl7TroZwg6rCQ7IyIXG4gID8gU2V0UGF0aDxVLCBQLCBWPltdXG4gIDogLy8gW1N0ZXAgMl0g6rK966Gc6rCAIOygkCguKeycvOuhnCDrgpjriZjripTqsIA/XG4gICAgUCBleHRlbmRzIGAke2luZmVyIEt9LiR7aW5mZXIgUmVzdH1gXG4gICAgPyBLIGV4dGVuZHMga2V5b2YgVFxuICAgICAgPyAvLyBbU3RlcCAyLTFdIO2CpOqwgCDsobTsnqztlahcbiAgICAgICAgRXhwYW5kPHtcbiAgICAgICAgICBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBLXG4gICAgICAgICAgICA/IFNldFBhdGg8VFtLXSwgUmVzdCwgVj4gLy8g7J6s6reAIO2YuOy2nFxuICAgICAgICAgICAgOiBUW0tleV07XG4gICAgICAgIH0+XG4gICAgICA6IC8vIFtTdGVwIDItMl0g7YKk6rCAIOyXhuydjCAo7IOI66Gc7Jq0IOqwneyytCDqsr3roZwg7IOd7ISxKVxuICAgICAgICBFeHBhbmQ8VCAmIHsgW0tleSBpbiBLXTogU2V0UGF0aDx7fSwgUmVzdCwgVj4gfT5cbiAgICA6IC8vIFtTdGVwIDNdIOqyveuhnOydmCDrp4jsp4Drp4kgKEJhc2UgQ2FzZSlcbiAgICAgIFAgZXh0ZW5kcyBrZXlvZiBUXG4gICAgICA/IC8vIFtTdGVwIDMtMV0g6riw7KG0IO2CpCDrja7slrTsk7DquLAgKOq1kOywqCDtg4DsnoUgJiDrjIDsi6Ag7KGw6rG067aAIO2DgOyeheycvOuhnCDsmYTsoIQg6rWQ7LK0KVxuICAgICAgICBFeHBhbmQ8eyBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBQID8gViA6IFRbS2V5XSB9PlxuICAgICAgOiAvLyBbU3RlcCAzLTJdIOyDiCDtgqQg7LaU6rCAXG4gICAgICAgIEV4cGFuZDxUICYgeyBbS2V5IGluIFBdOiBWIH0+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFByb3A8VCBleHRlbmRzIG9iamVjdCwgUCBleHRlbmRzIHN0cmluZywgVj4oXG4gIG9iajogVCxcbiAgcGF0aDogUCxcbiAgdmFsdWU6IFYsXG4pOiBTZXRQYXRoPFQsIFAsIFY+IHtcbiAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoXCIuXCIpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHRocm93IG5ldyBFcnJvcihcIlBhdGggY2Fubm90IGJlIGVtcHR5XCIpO1xuICBjb25zdCByZXN1bHQgPSBzdHJ1Y3R1cmVkQ2xvbmUob2JqKTtcblxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IOuylOyaqSDrsLDsl7Qg7JqU7IaMIO2DgOyehVxuICBjb25zdCBzZXREZWVwID0gKGN1cnJlbnQ6IGFueSwga2V5czogc3RyaW5nW10sIHZhbHVlOiBWKTogdm9pZCA9PiB7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgW2tleSwgLi4ucmVzdF0gPSBrZXlzO1xuXG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuICAgICAgICBjdXJyZW50LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpdGVtW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50W2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEoa2V5IGluIGN1cnJlbnQpIHx8IHR5cGVvZiBjdXJyZW50W2tleV0gIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgY3VycmVudFtrZXldID0ge307XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50W2tleV0pKSB7XG4gICAgICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTog67KU7JqpIOuwsOyXtCDsmpTshowg7YOA7J6FXG4gICAgICAgIGN1cnJlbnRba2V5XS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBzZXREZWVwKGl0ZW0sIHJlc3QsIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXREZWVwKGN1cnJlbnRba2V5XSwgcmVzdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBzZXREZWVwKHJlc3VsdCwga2V5cywgdmFsdWUpO1xuICByZXR1cm4gcmVzdWx0IGFzIFNldFBhdGg8VCwgUCwgVj47XG59XG5cbmludGVyZmFjZSBDaGFpbldyYXBwZXI8VD4ge1xuICAvLyDqsr3roZzsl5Ag6rCS7J2EIOyEpOygle2VmOqzoCDrs4Dqsr3rkJwg7YOA7J6F7J2YIOyDiOuhnOyatCDssrTsnbgg656Y7Y2866W8IOuwmO2ZmO2VqeuLiOuLpC5cbiAgc2V0PFAgZXh0ZW5kcyBzdHJpbmcsIFY+KHBhdGg6IFAsIHZhbHVlOiBWKTogQ2hhaW5XcmFwcGVyPFNldFBhdGg8VCwgUCwgVj4+O1xuXG4gIC8vIOy1nOyihSDqsrDqs7wg6rCd7LK066W8IOuwmO2ZmO2VqeuLiOuLpC5cbiAgdmFsdWUoKTogVDtcbn1cblxuLyoqXG4gKiDqsJ3ssrTrpbwg6rCQ7Iu47IScIOyytOydtOuLneydhCDsi5zsnpHtlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUHJvcHM8VCBleHRlbmRzIG9iamVjdD4ob2JqOiBUKTogQ2hhaW5XcmFwcGVyPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBzZXQ6IDxQIGV4dGVuZHMgc3RyaW5nLCBWPihwYXRoOiBQLCB2YWx1ZTogVikgPT4ge1xuICAgICAgY29uc3QgbmV4dE9iaiA9IHdpdGhQcm9wKG9iaiwgcGF0aCwgdmFsdWUpO1xuICAgICAgcmV0dXJuIHdpdGhQcm9wcyhuZXh0T2JqKSBhcyBDaGFpbldyYXBwZXI8U2V0UGF0aDxULCBQLCBWPj47XG4gICAgfSxcbiAgICB2YWx1ZTogKCkgPT4gb2JqLFxuICB9O1xufVxuIl0sIm5hbWVzIjpbIndpdGhQcm9wIiwib2JqIiwicGF0aCIsInZhbHVlIiwia2V5cyIsInNwbGl0IiwibGVuZ3RoIiwiRXJyb3IiLCJyZXN1bHQiLCJzdHJ1Y3R1cmVkQ2xvbmUiLCJzZXREZWVwIiwiY3VycmVudCIsImtleSIsInJlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwiaXRlbSIsIndpdGhQcm9wcyIsInNldCIsIm5leHRPYmoiXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQXdCbEMsT0FBTyxTQUFTQSxTQUNkQyxHQUFNLEVBQ05DLElBQU8sRUFDUEMsS0FBUTtJQUVSLE1BQU1DLE9BQU9GLEtBQUtHLEtBQUssQ0FBQztJQUN4QixJQUFJRCxLQUFLRSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUlDLE1BQU07SUFDdkMsTUFBTUMsU0FBU0MsZ0JBQWdCUjtJQUUvQiwwREFBMEQ7SUFDMUQsTUFBTVMsVUFBVSxDQUFDQyxTQUFjUCxNQUFnQkQ7UUFDN0MsSUFBSUMsS0FBS0UsTUFBTSxLQUFLLEdBQUc7UUFDdkIsTUFBTSxDQUFDTSxLQUFLLEdBQUdDLEtBQUssR0FBR1Q7UUFFdkIsSUFBSVMsS0FBS1AsTUFBTSxLQUFLLEdBQUc7WUFDckIsSUFBSVEsTUFBTUMsT0FBTyxDQUFDSixVQUFVO2dCQUMxQkEsUUFBUUssT0FBTyxDQUFDLENBQUNDO29CQUNmQSxJQUFJLENBQUNMLElBQUksR0FBR1Q7Z0JBQ2Q7WUFDRixPQUFPO2dCQUNMUSxPQUFPLENBQUNDLElBQUksR0FBR1Q7WUFDakI7UUFDRixPQUFPO1lBQ0wsSUFBSSxDQUFFUyxDQUFBQSxPQUFPRCxPQUFNLEtBQU0sT0FBT0EsT0FBTyxDQUFDQyxJQUFJLEtBQUssVUFBVTtnQkFDekRELE9BQU8sQ0FBQ0MsSUFBSSxHQUFHLENBQUM7WUFDbEI7WUFDQSxJQUFJRSxNQUFNQyxPQUFPLENBQUNKLE9BQU8sQ0FBQ0MsSUFBSSxHQUFHO2dCQUMvQiwwREFBMEQ7Z0JBQzFERCxPQUFPLENBQUNDLElBQUksQ0FBQ0ksT0FBTyxDQUFDLENBQUNDO29CQUNwQlAsUUFBUU8sTUFBTUosTUFBTVY7Z0JBQ3RCO1lBQ0YsT0FBTztnQkFDTE8sUUFBUUMsT0FBTyxDQUFDQyxJQUFJLEVBQUVDLE1BQU1WO1lBQzlCO1FBQ0Y7SUFDRjtJQUVBTyxRQUFRRixRQUFRSixNQUFNRDtJQUN0QixPQUFPSztBQUNUO0FBVUE7O0NBRUMsR0FDRCxPQUFPLFNBQVNVLFVBQTRCakIsR0FBTTtJQUNoRCxPQUFPO1FBQ0xrQixLQUFLLENBQXNCakIsTUFBU0M7WUFDbEMsTUFBTWlCLFVBQVVwQixTQUFTQyxLQUFLQyxNQUFNQztZQUNwQyxPQUFPZSxVQUFVRTtRQUNuQjtRQUNBakIsT0FBTyxJQUFNRjtJQUNmO0FBQ0YifQ==
|
|
@@ -3,7 +3,7 @@ import type { EmbeddingProvider, EmbeddingResult, ProgressCallback, VectorConfig
|
|
|
3
3
|
* 임베딩 클라이언트
|
|
4
4
|
* Voyage AI와 OpenAI 임베딩을 SDK 방식으로 통합 지원
|
|
5
5
|
*/
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class EmbeddingClass {
|
|
7
7
|
private config;
|
|
8
8
|
constructor(config?: Partial<VectorConfig>);
|
|
9
9
|
/**
|
|
@@ -34,13 +34,10 @@ export declare class Embedding {
|
|
|
34
34
|
* OpenAI 임베딩
|
|
35
35
|
*/
|
|
36
36
|
private embedOpenAI;
|
|
37
|
-
/**
|
|
38
|
-
* 벡터를 PostgreSQL vector 타입 문자열로 변환
|
|
39
|
-
*/
|
|
40
|
-
static toVectorString(embedding: number[]): string;
|
|
41
37
|
/**
|
|
42
38
|
* 임베딩 provider의 차원 수 반환
|
|
43
39
|
*/
|
|
44
40
|
getDimensions(provider: EmbeddingProvider): number;
|
|
45
41
|
}
|
|
42
|
+
export declare const Embedding: EmbeddingClass;
|
|
46
43
|
//# sourceMappingURL=embedding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/vector/embedding.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../../src/vector/embedding.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAU9C;;OAEG;YACW,eAAe;IAS7B;;OAEG;YACW,iBAAiB;IAS/B;;;;;;OAMG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,GAAE,eAA4B,EACvC,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,eAAe,EAAE,CAAC;IA0B7B;;OAEG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,GAAE,eAA4B,GACtC,OAAO,CAAC,eAAe,CAAC;IAK3B;;OAEG;YACW,WAAW;IAuBzB;;OAEG;YACW,WAAW;IAiBzB;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM;CAGnD;AACD,eAAO,MAAM,SAAS,gBAAuB,CAAC"}
|
package/dist/vector/embedding.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { createOpenAI } from "@ai-sdk/openai";
|
|
2
1
|
import { embedMany } from "ai";
|
|
3
|
-
import { VoyageAIClient } from "voyageai";
|
|
4
2
|
import { Sonamu } from "../api/sonamu.js";
|
|
5
3
|
import { DEFAULT_VECTOR_CONFIG } from "./config.js";
|
|
6
4
|
/**
|
|
7
5
|
* 임베딩 클라이언트
|
|
8
6
|
* Voyage AI와 OpenAI 임베딩을 SDK 방식으로 통합 지원
|
|
9
|
-
*/ export class
|
|
7
|
+
*/ export class EmbeddingClass {
|
|
10
8
|
config;
|
|
11
9
|
constructor(config = {}){
|
|
12
10
|
this.config = {
|
|
@@ -34,7 +32,8 @@ import { DEFAULT_VECTOR_CONFIG } from "./config.js";
|
|
|
34
32
|
}
|
|
35
33
|
/**
|
|
36
34
|
* Voyage AI 클라이언트 초기화
|
|
37
|
-
*/ getVoyageClient() {
|
|
35
|
+
*/ async getVoyageClient() {
|
|
36
|
+
const { VoyageAIClient } = await import("voyageai");
|
|
38
37
|
const apiKey = Sonamu.secrets?.voyage_api_key ?? process.env.VOYAGE_API_KEY;
|
|
39
38
|
if (!apiKey) {
|
|
40
39
|
throw new Error("VOYAGE_API_KEY가 설정되지 않았습니다. 환경변수를 확인하세요.");
|
|
@@ -45,7 +44,8 @@ import { DEFAULT_VECTOR_CONFIG } from "./config.js";
|
|
|
45
44
|
}
|
|
46
45
|
/**
|
|
47
46
|
* OpenAI provider 생성
|
|
48
|
-
*/ getOpenAIProvider() {
|
|
47
|
+
*/ async getOpenAIProvider() {
|
|
48
|
+
const { createOpenAI } = await import("@ai-sdk/openai");
|
|
49
49
|
const apiKey = Sonamu.secrets?.openai_api_key ?? process.env.OPENAI_API_KEY;
|
|
50
50
|
if (!apiKey) {
|
|
51
51
|
throw new Error("OPENAI_API_KEY가 설정되지 않았습니다. 환경변수를 확인하세요.");
|
|
@@ -85,7 +85,7 @@ import { DEFAULT_VECTOR_CONFIG } from "./config.js";
|
|
|
85
85
|
/**
|
|
86
86
|
* Voyage AI 임베딩
|
|
87
87
|
*/ async embedVoyage(texts, inputType) {
|
|
88
|
-
const client = this.getVoyageClient();
|
|
88
|
+
const client = await this.getVoyageClient();
|
|
89
89
|
const voyageConfig = this.config.voyage;
|
|
90
90
|
const response = await client.embed({
|
|
91
91
|
input: texts,
|
|
@@ -104,7 +104,7 @@ import { DEFAULT_VECTOR_CONFIG } from "./config.js";
|
|
|
104
104
|
/**
|
|
105
105
|
* OpenAI 임베딩
|
|
106
106
|
*/ async embedOpenAI(texts) {
|
|
107
|
-
const openai = this.getOpenAIProvider();
|
|
107
|
+
const openai = await this.getOpenAIProvider();
|
|
108
108
|
const openaiConfig = this.config.openai;
|
|
109
109
|
const model = openai.embeddingModel(openaiConfig.model);
|
|
110
110
|
const { embeddings, usage } = await embedMany({
|
|
@@ -118,15 +118,11 @@ import { DEFAULT_VECTOR_CONFIG } from "./config.js";
|
|
|
118
118
|
}));
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
* 벡터를 PostgreSQL vector 타입 문자열로 변환
|
|
122
|
-
*/ static toVectorString(embedding) {
|
|
123
|
-
return `[${embedding.join(",")}]`;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
121
|
* 임베딩 provider의 차원 수 반환
|
|
127
122
|
*/ getDimensions(provider) {
|
|
128
123
|
return provider === "voyage" ? this.config.voyage.dimensions : this.config.openai.dimensions;
|
|
129
124
|
}
|
|
130
125
|
}
|
|
126
|
+
export const Embedding = new EmbeddingClass();
|
|
131
127
|
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZWN0b3IvZW1iZWRkaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZU9wZW5BSSwgdHlwZSBPcGVuQUlQcm92aWRlciB9IGZyb20gXCJAYWktc2RrL29wZW5haVwiO1xuaW1wb3J0IHsgdHlwZSBFbWJlZGRpbmdNb2RlbCwgZW1iZWRNYW55IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBWb3lhZ2VBSUNsaWVudCB9IGZyb20gXCJ2b3lhZ2VhaVwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IERFRkFVTFRfVkVDVE9SX0NPTkZJRyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHR5cGUge1xuICBFbWJlZGRpbmdQcm92aWRlcixcbiAgRW1iZWRkaW5nUmVzdWx0LFxuICBQcm9ncmVzc0NhbGxiYWNrLFxuICBWZWN0b3JDb25maWcsXG4gIFZlY3RvcklucHV0VHlwZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiDsnoTrsqDrlKkg7YG065287J207Ja47Yq4XG4gKiBWb3lhZ2UgQUnsmYAgT3BlbkFJIOyehOuyoOuUqeydhCBTREsg67Cp7Iud7Jy866GcIO2Gte2VqSDsp4Dsm5BcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYmVkZGluZyB7XG4gIHByaXZhdGUgY29uZmlnOiBWZWN0b3JDb25maWc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQYXJ0aWFsPFZlY3RvckNvbmZpZz4gPSB7fSkge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgdm95YWdlOiB7IC4uLkRFRkFVTFRfVkVDVE9SX0NPTkZJRy52b3lhZ2UsIC4uLmNvbmZpZy52b3lhZ2UgfSxcbiAgICAgIG9wZW5haTogeyAuLi5ERUZBVUxUX1ZFQ1RPUl9DT05GSUcub3BlbmFpLCAuLi5jb25maWcub3BlbmFpIH0sXG4gICAgICBjaHVua2luZzogeyAuLi5ERUZBVUxUX1ZFQ1RPUl9DT05GSUcuY2h1bmtpbmcsIC4uLmNvbmZpZy5jaHVua2luZyB9LFxuICAgICAgc2VhcmNoOiB7IC4uLkRFRkFVTFRfVkVDVE9SX0NPTkZJRy5zZWFyY2gsIC4uLmNvbmZpZy5zZWFyY2ggfSxcbiAgICAgIHBndmVjdG9yOiB7IC4uLkRFRkFVTFRfVkVDVE9SX0NPTkZJRy5wZ3ZlY3RvciwgLi4uY29uZmlnLnBndmVjdG9yIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWb3lhZ2UgQUkg7YG065287J207Ja47Yq4IOy0iOq4sO2ZlFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWb3lhZ2VDbGllbnQoKTogVm95YWdlQUlDbGllbnQge1xuICAgIGNvbnN0IGFwaUtleSA9IFNvbmFtdS5zZWNyZXRzPy52b3lhZ2VfYXBpX2tleSA/PyBwcm9jZXNzLmVudi5WT1lBR0VfQVBJX0tFWTtcbiAgICBpZiAoIWFwaUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVk9ZQUdFX0FQSV9LRVnqsIAg7ISk7KCV65CY7KeAIOyViuyVmOyKteuLiOuLpC4g7ZmY6rK967OA7IiY66W8IO2ZleyduO2VmOyEuOyalC5cIik7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVm95YWdlQUlDbGllbnQoeyBhcGlLZXkgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbkFJIHByb3ZpZGVyIOyDneyEsVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRPcGVuQUlQcm92aWRlcigpOiBPcGVuQUlQcm92aWRlciB7XG4gICAgY29uc3QgYXBpS2V5ID0gU29uYW11LnNlY3JldHM/Lm9wZW5haV9hcGlfa2V5ID8/IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZO1xuICAgIGlmICghYXBpS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPUEVOQUlfQVBJX0tFWeqwgCDshKTsoJXrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiDtmZjqsr3rs4DsiJjrpbwg7ZmV7J247ZWY7IS47JqULlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZU9wZW5BSSh7IGFwaUtleSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDthY3siqTtirgg7J6E67Kg65SpIOyDneyEsVxuICAgKiBAcGFyYW0gdGV4dHMgLSDsnoTrsqDrlKntlaAg7YWN7Iqk7Yq4IOuwsOyXtCAoYmF0Y2hTaXpl7J207IOBIOyLnCDsnpDrj5kg67aE7ZWgKVxuICAgKiBAcGFyYW0gcHJvdmlkZXIgLSAndm95YWdlJyB8ICdvcGVuYWknXG4gICAqIEBwYXJhbSBpbnB1dFR5cGUgLSAnZG9jdW1lbnQnIHwgJ3F1ZXJ5JyAoVm95YWdlIEFJ66eMIO2VtOuLuSlcbiAgICogQHBhcmFtIG9uUHJvZ3Jlc3MgLSDsp4TtlonrpaAg7L2c67CxXG4gICAqL1xuICBhc3luYyBlbWJlZChcbiAgICB0ZXh0czogc3RyaW5nW10sXG4gICAgcHJvdmlkZXI6IEVtYmVkZGluZ1Byb3ZpZGVyLFxuICAgIGlucHV0VHlwZTogVmVjdG9ySW5wdXRUeXBlID0gXCJkb2N1bWVudFwiLFxuICAgIG9uUHJvZ3Jlc3M/OiBQcm9ncmVzc0NhbGxiYWNrLFxuICApOiBQcm9taXNlPEVtYmVkZGluZ1Jlc3VsdFtdPiB7XG4gICAgY29uc3QgbWF4QmF0Y2hTaXplID1cbiAgICAgIHByb3ZpZGVyID09PSBcInZveWFnZVwiID8gdGhpcy5jb25maWcudm95YWdlLmJhdGNoU2l6ZSA6IHRoaXMuY29uZmlnLm9wZW5haS5iYXRjaFNpemU7XG5cbiAgICAvLyBiYXRjaFNpemXsnbTtlZjrqbQg67CU66GcIO2YuOy2nFxuICAgIGlmICh0ZXh0cy5sZW5ndGggPD0gbWF4QmF0Y2hTaXplKSB7XG4gICAgICByZXR1cm4gcHJvdmlkZXIgPT09IFwidm95YWdlXCJcbiAgICAgICAgPyBhd2FpdCB0aGlzLmVtYmVkVm95YWdlKHRleHRzLCBpbnB1dFR5cGUpXG4gICAgICAgIDogYXdhaXQgdGhpcy5lbWJlZE9wZW5BSSh0ZXh0cyk7XG4gICAgfVxuXG4gICAgLy8gYmF0Y2hTaXpl7J207IOB7J2066m0IOyekOuPmeycvOuhnCDrgpjriKDshJwg7LKY66asXG4gICAgY29uc3QgYmF0Y2hlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbCh0ZXh0cy5sZW5ndGggLyBtYXhCYXRjaFNpemUpIH0sIChfLCBpKSA9PlxuICAgICAgdGV4dHMuc2xpY2UoaSAqIG1heEJhdGNoU2l6ZSwgKGkgKyAxKSAqIG1heEJhdGNoU2l6ZSksXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGJhdGNoZXMubWFwKChiYXRjaCkgPT5cbiAgICAgICAgcHJvdmlkZXIgPT09IFwidm95YWdlXCIgPyB0aGlzLmVtYmVkVm95YWdlKGJhdGNoLCBpbnB1dFR5cGUpIDogdGhpcy5lbWJlZE9wZW5BSShiYXRjaCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBvblByb2dyZXNzPy4odGV4dHMubGVuZ3RoLCB0ZXh0cy5sZW5ndGgpO1xuICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDri6jsnbwg7YWN7Iqk7Yq4IOyehOuyoOuUqSAo7Y647J2YIOuplOyEnOuTnClcbiAgICovXG4gIGFzeW5jIGVtYmVkT25lKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBwcm92aWRlcjogRW1iZWRkaW5nUHJvdmlkZXIsXG4gICAgaW5wdXRUeXBlOiBWZWN0b3JJbnB1dFR5cGUgPSBcImRvY3VtZW50XCIsXG4gICk6IFByb21pc2U8RW1iZWRkaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuZW1iZWQoW3RleHRdLCBwcm92aWRlciwgaW5wdXRUeXBlKTtcbiAgICByZXR1cm4gcmVzdWx0c1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWb3lhZ2UgQUkg7J6E67Kg65SpXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGVtYmVkVm95YWdlKFxuICAgIHRleHRzOiBzdHJpbmdbXSxcbiAgICBpbnB1dFR5cGU6IFZlY3RvcklucHV0VHlwZSxcbiAgKTogUHJvbWlzZTxFbWJlZGRpbmdSZXN1bHRbXT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuZ2V0Vm95YWdlQ2xpZW50KCk7XG4gICAgY29uc3Qgdm95YWdlQ29uZmlnID0gdGhpcy5jb25maWcudm95YWdlO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZW1iZWQoe1xuICAgICAgaW5wdXQ6IHRleHRzLFxuICAgICAgbW9kZWw6IHZveWFnZUNvbmZpZy5tb2RlbCxcbiAgICAgIGlucHV0VHlwZTogaW5wdXRUeXBlLFxuICAgIH0pO1xuICAgIGlmICghcmVzcG9uc2UuZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVm95YWdlIEFQSTog7J2R64u1IOuNsOydtO2EsOqwgCDsl4bsirXri4jri6QuXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5kYXRhLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGVtYmVkZGluZzogaXRlbS5lbWJlZGRpbmcgPz8gW10sXG4gICAgICBtb2RlbDogdm95YWdlQ29uZmlnLm1vZGVsLFxuICAgICAgdG9rZW5Db3VudDogcmVzcG9uc2UudXNhZ2U/LnRvdGFsVG9rZW5zID8/IDAsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5BSSDsnoTrsqDrlKlcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZW1iZWRPcGVuQUkodGV4dHM6IHN0cmluZ1tdKTogUHJvbWlzZTxFbWJlZGRpbmdSZXN1bHRbXT4ge1xuICAgIGNvbnN0IG9wZW5haSA9IHRoaXMuZ2V0T3BlbkFJUHJvdmlkZXIoKTtcbiAgICBjb25zdCBvcGVuYWlDb25maWcgPSB0aGlzLmNvbmZpZy5vcGVuYWk7XG4gICAgY29uc3QgbW9kZWwgPSBvcGVuYWkuZW1iZWRkaW5nTW9kZWwob3BlbmFpQ29uZmlnLm1vZGVsKTtcblxuICAgIGNvbnN0IHsgZW1iZWRkaW5ncywgdXNhZ2UgfSA9IGF3YWl0IGVtYmVkTWFueSh7XG4gICAgICBtb2RlbDogbW9kZWwgYXMgRW1iZWRkaW5nTW9kZWwsXG4gICAgICB2YWx1ZXM6IHRleHRzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVtYmVkZGluZ3MubWFwKChlbWJlZGRpbmcpID0+ICh7XG4gICAgICBlbWJlZGRpbmcsXG4gICAgICBtb2RlbDogb3BlbmFpQ29uZmlnLm1vZGVsLFxuICAgICAgdG9rZW5Db3VudDogdXNhZ2U/LnRva2VucyA/PyAwLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDrsqHthLDrpbwgUG9zdGdyZVNRTCB2ZWN0b3Ig7YOA7J6FIOusuOyekOyXtOuhnCDrs4DtmZhcbiAgICovXG4gIHN0YXRpYyB0b1ZlY3RvclN0cmluZyhlbWJlZGRpbmc6IG51bWJlcltdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFske2VtYmVkZGluZy5qb2luKFwiLFwiKX1dYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDsnoTrsqDrlKkgcHJvdmlkZXLsnZgg7LCo7JuQIOyImCDrsJjtmZhcbiAgICovXG4gIGdldERpbWVuc2lvbnMocHJvdmlkZXI6IEVtYmVkZGluZ1Byb3ZpZGVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvdmlkZXIgPT09IFwidm95YWdlXCIgPyB0aGlzLmNvbmZpZy52b3lhZ2UuZGltZW5zaW9ucyA6IHRoaXMuY29uZmlnLm9wZW5haS5kaW1lbnNpb25zO1xuICB9XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlT3BlbkFJIiwiZW1iZWRNYW55IiwiVm95YWdlQUlDbGllbnQiLCJTb25hbXUiLCJERUZBVUxUX1ZFQ1RPUl9DT05GSUciLCJFbWJlZGRpbmciLCJjb25maWciLCJ2b3lhZ2UiLCJvcGVuYWkiLCJjaHVua2luZyIsInNlYXJjaCIsInBndmVjdG9yIiwiZ2V0Vm95YWdlQ2xpZW50IiwiYXBpS2V5Iiwic2VjcmV0cyIsInZveWFnZV9hcGlfa2V5IiwicHJvY2VzcyIsImVudiIsIlZPWUFHRV9BUElfS0VZIiwiRXJyb3IiLCJnZXRPcGVuQUlQcm92aWRlciIsIm9wZW5haV9hcGlfa2V5IiwiT1BFTkFJX0FQSV9LRVkiLCJlbWJlZCIsInRleHRzIiwicHJvdmlkZXIiLCJpbnB1dFR5cGUiLCJvblByb2dyZXNzIiwibWF4QmF0Y2hTaXplIiwiYmF0Y2hTaXplIiwibGVuZ3RoIiwiZW1iZWRWb3lhZ2UiLCJlbWJlZE9wZW5BSSIsImJhdGNoZXMiLCJBcnJheSIsImZyb20iLCJNYXRoIiwiY2VpbCIsIl8iLCJpIiwic2xpY2UiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImJhdGNoIiwiZmxhdCIsImVtYmVkT25lIiwidGV4dCIsImNsaWVudCIsInZveWFnZUNvbmZpZyIsInJlc3BvbnNlIiwiaW5wdXQiLCJtb2RlbCIsImRhdGEiLCJpdGVtIiwiZW1iZWRkaW5nIiwidG9rZW5Db3VudCIsInVzYWdlIiwidG90YWxUb2tlbnMiLCJvcGVuYWlDb25maWciLCJlbWJlZGRpbmdNb2RlbCIsImVtYmVkZGluZ3MiLCJ2YWx1ZXMiLCJ0b2tlbnMiLCJ0b1ZlY3RvclN0cmluZyIsImpvaW4iLCJnZXREaW1lbnNpb25zIiwiZGltZW5zaW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsWUFBWSxRQUE2QixpQkFBaUI7QUFDbkUsU0FBOEJDLFNBQVMsUUFBUSxLQUFLO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSxXQUFXO0FBQzFDLFNBQVNDLE1BQU0sUUFBUSxtQkFBZ0I7QUFDdkMsU0FBU0MscUJBQXFCLFFBQVEsY0FBVztBQVNqRDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DO0lBQ0hDLE9BQXFCO0lBRTdCLFlBQVlBLFNBQWdDLENBQUMsQ0FBQyxDQUFFO1FBQzlDLElBQUksQ0FBQ0EsTUFBTSxHQUFHO1lBQ1pDLFFBQVE7Z0JBQUUsR0FBR0gsc0JBQXNCRyxNQUFNO2dCQUFFLEdBQUdELE9BQU9DLE1BQU07WUFBQztZQUM1REMsUUFBUTtnQkFBRSxHQUFHSixzQkFBc0JJLE1BQU07Z0JBQUUsR0FBR0YsT0FBT0UsTUFBTTtZQUFDO1lBQzVEQyxVQUFVO2dCQUFFLEdBQUdMLHNCQUFzQkssUUFB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
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZWN0b3IvZW1iZWRkaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3BlbkFJUHJvdmlkZXIgfSBmcm9tIFwiQGFpLXNkay9vcGVuYWlcIjtcbmltcG9ydCB7IHR5cGUgRW1iZWRkaW5nTW9kZWwsIGVtYmVkTWFueSB9IGZyb20gXCJhaVwiO1xuaW1wb3J0IHR5cGUgeyBWb3lhZ2VBSUNsaWVudCB9IGZyb20gXCJ2b3lhZ2VhaVwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IERFRkFVTFRfVkVDVE9SX0NPTkZJRyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHR5cGUge1xuICBFbWJlZGRpbmdQcm92aWRlcixcbiAgRW1iZWRkaW5nUmVzdWx0LFxuICBQcm9ncmVzc0NhbGxiYWNrLFxuICBWZWN0b3JDb25maWcsXG4gIFZlY3RvcklucHV0VHlwZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiDsnoTrsqDrlKkg7YG065287J207Ja47Yq4XG4gKiBWb3lhZ2UgQUnsmYAgT3BlbkFJIOyehOuyoOuUqeydhCBTREsg67Cp7Iud7Jy866GcIO2Gte2VqSDsp4Dsm5BcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYmVkZGluZ0NsYXNzIHtcbiAgcHJpdmF0ZSBjb25maWc6IFZlY3RvckNvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFBhcnRpYWw8VmVjdG9yQ29uZmlnPiA9IHt9KSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICB2b3lhZ2U6IHsgLi4uREVGQVVMVF9WRUNUT1JfQ09ORklHLnZveWFnZSwgLi4uY29uZmlnLnZveWFnZSB9LFxuICAgICAgb3BlbmFpOiB7IC4uLkRFRkFVTFRfVkVDVE9SX0NPTkZJRy5vcGVuYWksIC4uLmNvbmZpZy5vcGVuYWkgfSxcbiAgICAgIGNodW5raW5nOiB7IC4uLkRFRkFVTFRfVkVDVE9SX0NPTkZJRy5jaHVua2luZywgLi4uY29uZmlnLmNodW5raW5nIH0sXG4gICAgICBzZWFyY2g6IHsgLi4uREVGQVVMVF9WRUNUT1JfQ09ORklHLnNlYXJjaCwgLi4uY29uZmlnLnNlYXJjaCB9LFxuICAgICAgcGd2ZWN0b3I6IHsgLi4uREVGQVVMVF9WRUNUT1JfQ09ORklHLnBndmVjdG9yLCAuLi5jb25maWcucGd2ZWN0b3IgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZveWFnZSBBSSDtgbTrnbzsnbTslrjtirgg7LSI6riw7ZmUXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldFZveWFnZUNsaWVudCgpOiBQcm9taXNlPFZveWFnZUFJQ2xpZW50PiB7XG4gICAgY29uc3QgeyBWb3lhZ2VBSUNsaWVudCB9ID0gYXdhaXQgaW1wb3J0KFwidm95YWdlYWlcIik7XG4gICAgY29uc3QgYXBpS2V5ID0gU29uYW11LnNlY3JldHM/LnZveWFnZV9hcGlfa2V5ID8/IHByb2Nlc3MuZW52LlZPWUFHRV9BUElfS0VZO1xuICAgIGlmICghYXBpS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJWT1lBR0VfQVBJX0tFWeqwgCDshKTsoJXrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiDtmZjqsr3rs4DsiJjrpbwg7ZmV7J247ZWY7IS47JqULlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBWb3lhZ2VBSUNsaWVudCh7IGFwaUtleSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuQUkgcHJvdmlkZXIg7IOd7ISxXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldE9wZW5BSVByb3ZpZGVyKCk6IFByb21pc2U8T3BlbkFJUHJvdmlkZXI+IHtcbiAgICBjb25zdCB7IGNyZWF0ZU9wZW5BSSB9ID0gYXdhaXQgaW1wb3J0KFwiQGFpLXNkay9vcGVuYWlcIik7XG4gICAgY29uc3QgYXBpS2V5ID0gU29uYW11LnNlY3JldHM/Lm9wZW5haV9hcGlfa2V5ID8/IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZO1xuICAgIGlmICghYXBpS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPUEVOQUlfQVBJX0tFWeqwgCDshKTsoJXrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiDtmZjqsr3rs4DsiJjrpbwg7ZmV7J247ZWY7IS47JqULlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZU9wZW5BSSh7IGFwaUtleSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDthY3siqTtirgg7J6E67Kg65SpIOyDneyEsVxuICAgKiBAcGFyYW0gdGV4dHMgLSDsnoTrsqDrlKntlaAg7YWN7Iqk7Yq4IOuwsOyXtCAoYmF0Y2hTaXpl7J207IOBIOyLnCDsnpDrj5kg67aE7ZWgKVxuICAgKiBAcGFyYW0gcHJvdmlkZXIgLSAndm95YWdlJyB8ICdvcGVuYWknXG4gICAqIEBwYXJhbSBpbnB1dFR5cGUgLSAnZG9jdW1lbnQnIHwgJ3F1ZXJ5JyAoVm95YWdlIEFJ66eMIO2VtOuLuSlcbiAgICogQHBhcmFtIG9uUHJvZ3Jlc3MgLSDsp4TtlonrpaAg7L2c67CxXG4gICAqL1xuICBhc3luYyBlbWJlZChcbiAgICB0ZXh0czogc3RyaW5nW10sXG4gICAgcHJvdmlkZXI6IEVtYmVkZGluZ1Byb3ZpZGVyLFxuICAgIGlucHV0VHlwZTogVmVjdG9ySW5wdXRUeXBlID0gXCJkb2N1bWVudFwiLFxuICAgIG9uUHJvZ3Jlc3M/OiBQcm9ncmVzc0NhbGxiYWNrLFxuICApOiBQcm9taXNlPEVtYmVkZGluZ1Jlc3VsdFtdPiB7XG4gICAgY29uc3QgbWF4QmF0Y2hTaXplID1cbiAgICAgIHByb3ZpZGVyID09PSBcInZveWFnZVwiID8gdGhpcy5jb25maWcudm95YWdlLmJhdGNoU2l6ZSA6IHRoaXMuY29uZmlnLm9wZW5haS5iYXRjaFNpemU7XG5cbiAgICAvLyBiYXRjaFNpemXsnbTtlZjrqbQg67CU66GcIO2YuOy2nFxuICAgIGlmICh0ZXh0cy5sZW5ndGggPD0gbWF4QmF0Y2hTaXplKSB7XG4gICAgICByZXR1cm4gcHJvdmlkZXIgPT09IFwidm95YWdlXCJcbiAgICAgICAgPyBhd2FpdCB0aGlzLmVtYmVkVm95YWdlKHRleHRzLCBpbnB1dFR5cGUpXG4gICAgICAgIDogYXdhaXQgdGhpcy5lbWJlZE9wZW5BSSh0ZXh0cyk7XG4gICAgfVxuXG4gICAgLy8gYmF0Y2hTaXpl7J207IOB7J2066m0IOyekOuPmeycvOuhnCDrgpjriKDshJwg7LKY66asXG4gICAgY29uc3QgYmF0Y2hlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbCh0ZXh0cy5sZW5ndGggLyBtYXhCYXRjaFNpemUpIH0sIChfLCBpKSA9PlxuICAgICAgdGV4dHMuc2xpY2UoaSAqIG1heEJhdGNoU2l6ZSwgKGkgKyAxKSAqIG1heEJhdGNoU2l6ZSksXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGJhdGNoZXMubWFwKChiYXRjaCkgPT5cbiAgICAgICAgcHJvdmlkZXIgPT09IFwidm95YWdlXCIgPyB0aGlzLmVtYmVkVm95YWdlKGJhdGNoLCBpbnB1dFR5cGUpIDogdGhpcy5lbWJlZE9wZW5BSShiYXRjaCksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBvblByb2dyZXNzPy4odGV4dHMubGVuZ3RoLCB0ZXh0cy5sZW5ndGgpO1xuICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDri6jsnbwg7YWN7Iqk7Yq4IOyehOuyoOuUqSAo7Y647J2YIOuplOyEnOuTnClcbiAgICovXG4gIGFzeW5jIGVtYmVkT25lKFxuICAgIHRleHQ6IHN0cmluZyxcbiAgICBwcm92aWRlcjogRW1iZWRkaW5nUHJvdmlkZXIsXG4gICAgaW5wdXRUeXBlOiBWZWN0b3JJbnB1dFR5cGUgPSBcImRvY3VtZW50XCIsXG4gICk6IFByb21pc2U8RW1iZWRkaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuZW1iZWQoW3RleHRdLCBwcm92aWRlciwgaW5wdXRUeXBlKTtcbiAgICByZXR1cm4gcmVzdWx0c1swXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWb3lhZ2UgQUkg7J6E67Kg65SpXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGVtYmVkVm95YWdlKFxuICAgIHRleHRzOiBzdHJpbmdbXSxcbiAgICBpbnB1dFR5cGU6IFZlY3RvcklucHV0VHlwZSxcbiAgKTogUHJvbWlzZTxFbWJlZGRpbmdSZXN1bHRbXT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IHRoaXMuZ2V0Vm95YWdlQ2xpZW50KCk7XG4gICAgY29uc3Qgdm95YWdlQ29uZmlnID0gdGhpcy5jb25maWcudm95YWdlO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZW1iZWQoe1xuICAgICAgaW5wdXQ6IHRleHRzLFxuICAgICAgbW9kZWw6IHZveWFnZUNvbmZpZy5tb2RlbCxcbiAgICAgIGlucHV0VHlwZTogaW5wdXRUeXBlLFxuICAgIH0pO1xuICAgIGlmICghcmVzcG9uc2UuZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVm95YWdlIEFQSTog7J2R64u1IOuNsOydtO2EsOqwgCDsl4bsirXri4jri6QuXCIpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZS5kYXRhLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGVtYmVkZGluZzogaXRlbS5lbWJlZGRpbmcgPz8gW10sXG4gICAgICBtb2RlbDogdm95YWdlQ29uZmlnLm1vZGVsLFxuICAgICAgdG9rZW5Db3VudDogcmVzcG9uc2UudXNhZ2U/LnRvdGFsVG9rZW5zID8/IDAsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5BSSDsnoTrsqDrlKlcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZW1iZWRPcGVuQUkodGV4dHM6IHN0cmluZ1tdKTogUHJvbWlzZTxFbWJlZGRpbmdSZXN1bHRbXT4ge1xuICAgIGNvbnN0IG9wZW5haSA9IGF3YWl0IHRoaXMuZ2V0T3BlbkFJUHJvdmlkZXIoKTtcbiAgICBjb25zdCBvcGVuYWlDb25maWcgPSB0aGlzLmNvbmZpZy5vcGVuYWk7XG4gICAgY29uc3QgbW9kZWwgPSBvcGVuYWkuZW1iZWRkaW5nTW9kZWwob3BlbmFpQ29uZmlnLm1vZGVsKTtcblxuICAgIGNvbnN0IHsgZW1iZWRkaW5ncywgdXNhZ2UgfSA9IGF3YWl0IGVtYmVkTWFueSh7XG4gICAgICBtb2RlbDogbW9kZWwgYXMgRW1iZWRkaW5nTW9kZWwsXG4gICAgICB2YWx1ZXM6IHRleHRzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVtYmVkZGluZ3MubWFwKChlbWJlZGRpbmcpID0+ICh7XG4gICAgICBlbWJlZGRpbmcsXG4gICAgICBtb2RlbDogb3BlbmFpQ29uZmlnLm1vZGVsLFxuICAgICAgdG9rZW5Db3VudDogdXNhZ2U/LnRva2VucyA/PyAwLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDsnoTrsqDrlKkgcHJvdmlkZXLsnZgg7LCo7JuQIOyImCDrsJjtmZhcbiAgICovXG4gIGdldERpbWVuc2lvbnMocHJvdmlkZXI6IEVtYmVkZGluZ1Byb3ZpZGVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvdmlkZXIgPT09IFwidm95YWdlXCIgPyB0aGlzLmNvbmZpZy52b3lhZ2UuZGltZW5zaW9ucyA6IHRoaXMuY29uZmlnLm9wZW5haS5kaW1lbnNpb25zO1xuICB9XG59XG5leHBvcnQgY29uc3QgRW1iZWRkaW5nID0gbmV3IEVtYmVkZGluZ0NsYXNzKCk7XG4iXSwibmFtZXMiOlsiZW1iZWRNYW55IiwiU29uYW11IiwiREVGQVVMVF9WRUNUT1JfQ09ORklHIiwiRW1iZWRkaW5nQ2xhc3MiLCJjb25maWciLCJ2b3lhZ2UiLCJvcGVuYWkiLCJjaHVua2luZyIsInNlYXJjaCIsInBndmVjdG9yIiwiZ2V0Vm95YWdlQ2xpZW50IiwiVm95YWdlQUlDbGllbnQiLCJhcGlLZXkiLCJzZWNyZXRzIiwidm95YWdlX2FwaV9rZXkiLCJwcm9jZXNzIiwiZW52IiwiVk9ZQUdFX0FQSV9LRVkiLCJFcnJvciIsImdldE9wZW5BSVByb3ZpZGVyIiwiY3JlYXRlT3BlbkFJIiwib3BlbmFpX2FwaV9rZXkiLCJPUEVOQUlfQVBJX0tFWSIsImVtYmVkIiwidGV4dHMiLCJwcm92aWRlciIsImlucHV0VHlwZSIsIm9uUHJvZ3Jlc3MiLCJtYXhCYXRjaFNpemUiLCJiYXRjaFNpemUiLCJsZW5ndGgiLCJlbWJlZFZveWFnZSIsImVtYmVkT3BlbkFJIiwiYmF0Y2hlcyIsIkFycmF5IiwiZnJvbSIsIk1hdGgiLCJjZWlsIiwiXyIsImkiLCJzbGljZSIsInJlc3VsdHMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiYmF0Y2giLCJmbGF0IiwiZW1iZWRPbmUiLCJ0ZXh0IiwiY2xpZW50Iiwidm95YWdlQ29uZmlnIiwicmVzcG9uc2UiLCJpbnB1dCIsIm1vZGVsIiwiZGF0YSIsIml0ZW0iLCJlbWJlZGRpbmciLCJ0b2tlbkNvdW50IiwidXNhZ2UiLCJ0b3RhbFRva2VucyIsIm9wZW5haUNvbmZpZyIsImVtYmVkZGluZ01vZGVsIiwiZW1iZWRkaW5ncyIsInZhbHVlcyIsInRva2VucyIsImdldERpbWVuc2lvbnMiLCJkaW1lbnNpb25zIiwiRW1iZWRkaW5nIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUE4QkEsU0FBUyxRQUFRLEtBQUs7QUFFcEQsU0FBU0MsTUFBTSxRQUFRLG1CQUFnQjtBQUN2QyxTQUFTQyxxQkFBcUIsUUFBUSxjQUFXO0FBU2pEOzs7Q0FHQyxHQUNELE9BQU8sTUFBTUM7SUFDSEMsT0FBcUI7SUFFN0IsWUFBWUEsU0FBZ0MsQ0FBQyxDQUFDLENBQUU7UUFDOUMsSUFBSSxDQUFDQSxNQUFNLEdBQUc7WUFDWkMsUUFBUTtnQkFBRSxHQUFHSCxzQkFBc0JHLE1BQU07Z0JBQUUsR0FBR0QsT0FBT0MsTUFBTTtZQUFDO1lBQzVEQyxRQUFRO2dCQUFFLEdBQUdKLHNCQUFzQkksTUFBTTtnQkFBRSxHQUFHRixPQUFPRSxNQUFNO1lBQUM7WUFDNURDLFVBQVU7Z0JBQUUsR0FBR0wsc0JBQXNCSyxRQUFRO2dCQUFFLEdBQUdILE9BQU9HLFFBQVE7WUFBQztZQUNs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vector/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc;AACd,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,qCAAqC;AACrC,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,aAAa;AACb,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,YAAY;AACZ,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAe;AACf,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC;CACT;AAED,iCAAiC;AACjC,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vector/types.ts"],"names":[],"mappings":"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"}
|
package/dist/vector/types.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* pgvector 통합을 위한 타입 정의
|
|
3
3
|
*/ /** 임베딩 제공자 */ /** 진행률 콜백 */ export { };
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZWN0b3IvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBwZ3ZlY3RvciDthrXtlansnYQg7JyE7ZWcIO2DgOyehSDsoJXsnZhcbiAqL1xuXG4vKiog7J6E67Kg65SpIOygnOqzteyekCAqL1xuZXhwb3J0IHR5cGUgRW1iZWRkaW5nUHJvdmlkZXIgPSBcInZveWFnZVwiIHwgXCJvcGVuYWlcIjtcblxuLyoqIOyeheugpSDtg4DsnoUgKFZveWFnZSBBSSDsoITsmqkgLSDruYTrjIDsua0g7J6E67Kg65SpKSAqL1xuZXhwb3J0IHR5cGUgVmVjdG9ySW5wdXRUeXBlID0gXCJkb2N1bWVudFwiIHwgXCJxdWVyeVwiO1xuXG4vKiog7J6E67Kg65SpIOqysOqzvCAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRpbmdSZXN1bHQge1xuICBlbWJlZGRpbmc6IG51bWJlcltdO1xuICBtb2RlbDogc3RyaW5nO1xuICB0b2tlbkNvdW50OiBudW1iZXI7XG59XG5cbi8qKiDssq3tgawg7KCV67O0ICovXG5leHBvcnQgaW50ZXJmYWNlIENodW5rIHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdGV4dDogc3RyaW5nO1xuICBzdGFydE9mZnNldDogbnVtYmVyO1xuICBlbmRPZmZzZXQ6IG51bWJlcjtcbn1cblxuLyoqIOuyoe2EsCDqsoDsg4kg6rKw6rO8ICovXG5leHBvcnQgaW50ZXJmYWNlIFZlY3RvclNlYXJjaFJlc3VsdDxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZWN0b3IvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBwZ3ZlY3RvciDthrXtlansnYQg7JyE7ZWcIO2DgOyehSDsoJXsnZhcbiAqL1xuXG4vKiog7J6E67Kg65SpIOygnOqzteyekCAqL1xuZXhwb3J0IHR5cGUgRW1iZWRkaW5nUHJvdmlkZXIgPSBcInZveWFnZVwiIHwgXCJvcGVuYWlcIjtcblxuLyoqIOyeheugpSDtg4DsnoUgKFZveWFnZSBBSSDsoITsmqkgLSDruYTrjIDsua0g7J6E67Kg65SpKSAqL1xuZXhwb3J0IHR5cGUgVmVjdG9ySW5wdXRUeXBlID0gXCJkb2N1bWVudFwiIHwgXCJxdWVyeVwiO1xuXG4vKiog7J6E67Kg65SpIOqysOqzvCAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRpbmdSZXN1bHQge1xuICBlbWJlZGRpbmc6IG51bWJlcltdO1xuICBtb2RlbDogc3RyaW5nO1xuICB0b2tlbkNvdW50OiBudW1iZXI7XG59XG5cbi8qKiDssq3tgawg7KCV67O0ICovXG5leHBvcnQgaW50ZXJmYWNlIENodW5rIHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdGV4dDogc3RyaW5nO1xuICBzdGFydE9mZnNldDogbnVtYmVyO1xuICBlbmRPZmZzZXQ6IG51bWJlcjtcbn1cblxuLyoqIOuyoe2EsCDqsoDsg4kg6rKw6rO8ICovXG5leHBvcnQgaW50ZXJmYWNlIFZlY3RvclNlYXJjaFJlc3VsdDxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgc2ltaWxhcml0eTogbnVtYmVyO1xuICBkYXRhOiBUO1xufVxuXG4vKiog7ZWY7J2067iM66as65OcIOqygOyDiSDqsrDqs7wgKFZlY3RvciArIEZUUykgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHlicmlkU2VhcmNoUmVzdWx0PFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gZXh0ZW5kcyBWZWN0b3JTZWFyY2hSZXN1bHQ8VD4ge1xuICB2ZWN0b3JTY29yZT86IG51bWJlcjtcbiAgZnRzU2NvcmU/OiBudW1iZXI7XG59XG5cbi8qKiDrsqTsuZjrp4jtgawg6rKw6rO8ICovXG5leHBvcnQgaW50ZXJmYWNlIEJlbmNobWFya1Jlc3VsdCB7XG4gIHByb3ZpZGVyOiBFbWJlZGRpbmdQcm92aWRlcjtcbiAgZW1iZWRUaW1lOiBudW1iZXI7XG4gIHNlYXJjaFRpbWU6IG51bWJlcjtcbiAgcmVzdWx0czogVmVjdG9yU2VhcmNoUmVzdWx0W107XG59XG5cbi8qKiBWb3lhZ2UgQUkg7ISk7KCVICovXG5leHBvcnQgaW50ZXJmYWNlIFZveWFnZUNvbmZpZyB7XG4gIGFwaUtleTogc3RyaW5nO1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIGRpbWVuc2lvbnM6IG51bWJlcjtcbiAgbWF4VG9rZW5zOiBudW1iZXI7XG4gIGJhdGNoU2l6ZTogbnVtYmVyO1xufVxuXG4vKiogT3BlbkFJIOyEpOyglSAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlDb25maWcge1xuICBhcGlLZXk6IHN0cmluZztcbiAgYmFzZVVybDogc3RyaW5nO1xuICBtb2RlbDogc3RyaW5nO1xuICBkaW1lbnNpb25zOiBudW1iZXI7XG4gIG1heFRva2VuczogbnVtYmVyO1xuICBiYXRjaFNpemU6IG51bWJlcjtcbn1cblxuLyoqIOyyre2CuSDshKTsoJUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2h1bmtpbmdDb25maWcge1xuICBjaHVua1NpemU6IG51bWJlcjtcbiAgY2h1bmtPdmVybGFwOiBudW1iZXI7XG4gIG1pbkNodW5rU2l6ZTogbnVtYmVyO1xuICBza2lwVGhyZXNob2xkOiBudW1iZXI7XG4gIHNlcGFyYXRvcnM6IHN0cmluZ1tdO1xufVxuXG4vKiog6rKA7IOJIOyEpOyglSAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWcge1xuICBkZWZhdWx0TGltaXQ6IG51bWJlcjtcbiAgc2ltaWxhcml0eVRocmVzaG9sZDogbnVtYmVyO1xuICB2ZWN0b3JXZWlnaHQ6IG51bWJlcjtcbiAgZnRzV2VpZ2h0OiBudW1iZXI7XG59XG5cbi8qKiBwZ3ZlY3RvciDshKTsoJUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGd2ZWN0b3JDb25maWcge1xuICBpdGVyYXRpdmVTY2FuOiBib29sZWFuO1xuICBlZlNlYXJjaDogbnVtYmVyO1xufVxuXG4vKiog7KCE7LK0IOuyoe2EsCDshKTsoJUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVjdG9yQ29uZmlnIHtcbiAgdm95YWdlOiBWb3lhZ2VDb25maWc7XG4gIG9wZW5haTogT3BlbkFJQ29uZmlnO1xuICBjaHVua2luZzogQ2h1bmtpbmdDb25maWc7XG4gIHNlYXJjaDogU2VhcmNoQ29uZmlnO1xuICBwZ3ZlY3RvcjogUGd2ZWN0b3JDb25maWc7XG59XG5cbi8qKiDrsqHthLAg6rKA7IOJIOyYteyFmCAqL1xuZXhwb3J0IGludGVyZmFjZSBWZWN0b3JTZWFyY2hPcHRpb25zIHtcbiAgZW1iZWRkaW5nQ29sdW1uPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgdGhyZXNob2xkPzogbnVtYmVyO1xuICB3aGVyZT86IHN0cmluZztcbn1cblxuLyoqIO2VmOydtOu4jOumrOuTnCDqsoDsg4kg7Ji17IWYICovXG5leHBvcnQgaW50ZXJmYWNlIEh5YnJpZFNlYXJjaE9wdGlvbnMgZXh0ZW5kcyBWZWN0b3JTZWFyY2hPcHRpb25zIHtcbiAgdmVjdG9yV2VpZ2h0PzogbnVtYmVyO1xuICBmdHNXZWlnaHQ/OiBudW1iZXI7XG4gIGZ0c0NvbHVtbj86IHN0cmluZztcbn1cblxuLyoqIOyehOuyoOuUqSDsoIDsnqUg7ZWt66qpICovXG5leHBvcnQgaW50ZXJmYWNlIEVtYmVkZGluZ0l0ZW0ge1xuICBpZDogbnVtYmVyO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKiDsp4TtlonrpaAg7L2c67CxICovXG5leHBvcnQgdHlwZSBQcm9ncmVzc0NhbGxiYWNrID0gKHByb2Nlc3NlZDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSA9PiB2b2lkO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztDQUVDLEdBRUQsWUFBWSxHQW1IWixXQUFXLEdBQ1gsV0FBMEUifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sonamu",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.13",
|
|
4
4
|
"description": "Sonamu — TypeScript Fullstack API Framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"knex": "^3.1.0",
|
|
69
69
|
"mime-types": "^3.0.1",
|
|
70
70
|
"minimatch": "^10.0.3",
|
|
71
|
+
"node-cron": "^4.2.1",
|
|
71
72
|
"node-sql-parser": "^5.2.0",
|
|
72
73
|
"pg": "^8.16.3",
|
|
73
74
|
"prompts": "^2.4.2",
|
|
@@ -76,9 +77,10 @@
|
|
|
76
77
|
"tsicli": "^1.0.5",
|
|
77
78
|
"vitest": "^4.0.10",
|
|
78
79
|
"zod": "^4.1.12",
|
|
79
|
-
"@sonamu-kit/hmr-runner": "^0.1.1",
|
|
80
80
|
"@sonamu-kit/hmr-hook": "^0.4.1",
|
|
81
|
-
"@sonamu-kit/
|
|
81
|
+
"@sonamu-kit/tasks": "^0.0.1",
|
|
82
|
+
"@sonamu-kit/ts-loader": "^2.1.3",
|
|
83
|
+
"@sonamu-kit/hmr-runner": "^0.1.1"
|
|
82
84
|
},
|
|
83
85
|
"devDependencies": {
|
|
84
86
|
"@biomejs/biome": "^2.3.7",
|
|
@@ -102,8 +104,8 @@
|
|
|
102
104
|
"ai": "6.0.0-beta.138",
|
|
103
105
|
"fastify": "^4.23.2",
|
|
104
106
|
"knex": "^3.1.0",
|
|
105
|
-
"typescript": "^5.9.3",
|
|
106
107
|
"pgvector": "^0.2.1",
|
|
108
|
+
"typescript": "^5.9.3",
|
|
107
109
|
"voyageai": "^0.0.8"
|
|
108
110
|
},
|
|
109
111
|
"peerDependenciesMeta": {
|
|
@@ -128,7 +130,9 @@
|
|
|
128
130
|
},
|
|
129
131
|
"scripts": {
|
|
130
132
|
"dev": "nodemon exec",
|
|
131
|
-
"build": "
|
|
133
|
+
"build": "run-s 'build:sonamu' 'build:ui-web'",
|
|
134
|
+
"build:sonamu": "rm -rf dist && swc src -d dist --strip-leading-paths && tsc --emitDeclarationOnly",
|
|
135
|
+
"build:ui-web": "cd ui-web && pnpm install && pnpm build",
|
|
132
136
|
"test:type": "vitest --typecheck test-d.ts"
|
|
133
137
|
}
|
|
134
138
|
}
|
package/src/api/config.ts
CHANGED
|
@@ -9,7 +9,9 @@ import type { QsPluginOptions } from "fastify-qs";
|
|
|
9
9
|
import type { SsePluginOptions } from "fastify-sse-v2/lib/types";
|
|
10
10
|
import type { Knex } from "knex";
|
|
11
11
|
import type { Driver } from "../file-storage/driver";
|
|
12
|
-
import type {
|
|
12
|
+
import type { WorkflowOptions } from "../tasks/workflow-manager";
|
|
13
|
+
import type { Executable, SonamuFastifyConfig } from "../types/types";
|
|
14
|
+
import type { AuthContext, Context } from "./context";
|
|
13
15
|
|
|
14
16
|
export type DatabaseConfig = Omit<Knex.Config, "connection"> & {
|
|
15
17
|
connection?: Knex.PgConnectionConfig;
|
|
@@ -28,9 +30,6 @@ export type SonamuConfig = {
|
|
|
28
30
|
sync: {
|
|
29
31
|
targets: string[]; // "web", "app" 등
|
|
30
32
|
};
|
|
31
|
-
ui?: {
|
|
32
|
-
port: number;
|
|
33
|
-
};
|
|
34
33
|
|
|
35
34
|
database: {
|
|
36
35
|
// 데이터베이스
|
|
@@ -50,6 +49,7 @@ export type SonamuConfig = {
|
|
|
50
49
|
};
|
|
51
50
|
|
|
52
51
|
server: SonamuServerOptions;
|
|
52
|
+
tasks?: SonamuTaskOptions;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
export type SonamuServerOptions = {
|
|
@@ -90,14 +90,18 @@ export type SonamuServerOptions = {
|
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
export type SonamuTaskOptions = {
|
|
94
|
+
// worker를 사용할지 여부, 기본적으로 daemon 모드에서만 사용됨.
|
|
95
|
+
enableWorker?: boolean;
|
|
96
|
+
workerOptions?: WorkflowOptions;
|
|
97
|
+
contextProvider: (
|
|
98
|
+
defaultContext: Pick<Context, "reply" | "request" | "headers" | "createSSE" | "naiteStore"> &
|
|
99
|
+
AuthContext,
|
|
100
|
+
) => Context | Promise<Context>;
|
|
101
|
+
};
|
|
99
102
|
|
|
100
|
-
|
|
103
|
+
// NOTE(Haze, 251209): config에는 T, Promise<T>, () => T, () => Promise<T>가 모두 올 수 있어야 함.
|
|
104
|
+
export function defineConfig(config: Executable<SonamuConfig>): Promise<SonamuConfig> {
|
|
101
105
|
if (typeof config === "function") {
|
|
102
106
|
return Promise.resolve(config());
|
|
103
107
|
}
|
package/src/api/sonamu.ts
CHANGED
|
@@ -3,15 +3,18 @@ import { AsyncLocalStorage } from "async_hooks";
|
|
|
3
3
|
import type { FSWatcher } from "chokidar";
|
|
4
4
|
import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
|
|
5
5
|
import type { IncomingMessage, Server, ServerResponse } from "http";
|
|
6
|
+
import os from "os";
|
|
6
7
|
import path from "path";
|
|
7
8
|
import type { ZodObject } from "zod";
|
|
9
|
+
import { createMockSSEFactory, DB, isDaemonServer } from "..";
|
|
8
10
|
import type { SonamuDBConfig } from "../database/db";
|
|
9
11
|
import type { Driver } from "../file-storage/driver";
|
|
10
12
|
import { Naite } from "../naite/naite";
|
|
11
13
|
import type { Syncer } from "../syncer/syncer";
|
|
14
|
+
import type { WorkflowManager } from "../tasks/workflow-manager";
|
|
12
15
|
import type { SonamuFastifyConfig } from "../types/types";
|
|
13
16
|
import type { AbsolutePath } from "../utils/path-utils";
|
|
14
|
-
import type { SonamuConfig, SonamuServerOptions } from "./config";
|
|
17
|
+
import type { SonamuConfig, SonamuServerOptions, SonamuTaskOptions } from "./config";
|
|
15
18
|
import type { AuthContext, Context, UploadContext } from "./context";
|
|
16
19
|
import type { ExtendedApi } from "./decorators";
|
|
17
20
|
|
|
@@ -42,7 +45,7 @@ class SonamuClass {
|
|
|
42
45
|
request: null,
|
|
43
46
|
reply: null,
|
|
44
47
|
headers: {},
|
|
45
|
-
createSSE: () =>
|
|
48
|
+
createSSE: (schema: ZodObject) => createMockSSEFactory(schema),
|
|
46
49
|
// biome-ignore lint/suspicious/noExplicitAny: 테스팅 환경에서 컨텍스트가 주입되지 않은 경우 빈 컨텍스트 리턴
|
|
47
50
|
naiteStore: new Map<string, any>(),
|
|
48
51
|
} as unknown as Context;
|
|
@@ -122,6 +125,15 @@ class SonamuClass {
|
|
|
122
125
|
return this._storage;
|
|
123
126
|
}
|
|
124
127
|
|
|
128
|
+
private _workflows: WorkflowManager | null = null;
|
|
129
|
+
get workflows(): WorkflowManager {
|
|
130
|
+
if (this._workflows === null) {
|
|
131
|
+
throw new Error("Sonamu has not been initialized");
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return this._workflows;
|
|
135
|
+
}
|
|
136
|
+
|
|
125
137
|
// HMR 처리
|
|
126
138
|
public watcher: FSWatcher | null = null;
|
|
127
139
|
private pendingFiles: string[] = [];
|
|
@@ -192,6 +204,9 @@ class SonamuClass {
|
|
|
192
204
|
return;
|
|
193
205
|
}
|
|
194
206
|
|
|
207
|
+
// Task 등록
|
|
208
|
+
await this.initializeWorkflows(this.config.tasks);
|
|
209
|
+
|
|
195
210
|
// Syncer
|
|
196
211
|
const { Syncer } = await import("../syncer/syncer");
|
|
197
212
|
this.syncer = new Syncer();
|
|
@@ -200,6 +215,7 @@ class SonamuClass {
|
|
|
200
215
|
await this.syncer.autoloadTypes();
|
|
201
216
|
await this.syncer.autoloadModels();
|
|
202
217
|
await this.syncer.autoloadApis();
|
|
218
|
+
await this.syncer.autoloadWorkflows();
|
|
203
219
|
|
|
204
220
|
const { TemplateManager } = await import("../template");
|
|
205
221
|
await TemplateManager.autoload();
|
|
@@ -215,8 +231,6 @@ class SonamuClass {
|
|
|
215
231
|
await this.syncer.sync();
|
|
216
232
|
|
|
217
233
|
await this.startWatcher();
|
|
218
|
-
|
|
219
|
-
this.syncer.syncUI();
|
|
220
234
|
}
|
|
221
235
|
|
|
222
236
|
this.isInitialized = true;
|
|
@@ -330,10 +344,19 @@ class SonamuClass {
|
|
|
330
344
|
},
|
|
331
345
|
);
|
|
332
346
|
|
|
347
|
+
// Sonamu UI API
|
|
348
|
+
const { sonamuUIApiPlugin } = await import("../ui/api");
|
|
349
|
+
server.register(sonamuUIApiPlugin);
|
|
350
|
+
|
|
333
351
|
// API 라우팅 (로컬HMR 상태와 구분)
|
|
334
352
|
const { isLocal } = await import("../utils/controller");
|
|
335
353
|
if (isLocal()) {
|
|
336
354
|
server.all("*", async (request, reply) => {
|
|
355
|
+
// Sonamu UI
|
|
356
|
+
if (request.url.startsWith("/sonamu-ui")) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
|
|
337
360
|
const found = this.syncer.apis.find(
|
|
338
361
|
(api) =>
|
|
339
362
|
this.config.api.route.prefix + api.path === request.url.split("?")[0] &&
|
|
@@ -342,8 +365,14 @@ class SonamuClass {
|
|
|
342
365
|
if (found) {
|
|
343
366
|
return this.getApiHandler(found, config)(request, reply);
|
|
344
367
|
}
|
|
345
|
-
|
|
346
|
-
|
|
368
|
+
|
|
369
|
+
if (request.url.startsWith("/api/")) {
|
|
370
|
+
const { NotFoundException } = await import("../exceptions/so-exceptions");
|
|
371
|
+
throw new NotFoundException(`존재하지 않는 API 접근입니다. ${request.url}`);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// 일반 파일 접근시 별도의 에러 출력하지 않음
|
|
375
|
+
return;
|
|
347
376
|
});
|
|
348
377
|
} else {
|
|
349
378
|
for (const api of this.syncer.apis) {
|
|
@@ -563,12 +592,36 @@ class SonamuClass {
|
|
|
563
592
|
}
|
|
564
593
|
}
|
|
565
594
|
|
|
595
|
+
private async initializeWorkflows(options: SonamuTaskOptions | undefined) {
|
|
596
|
+
const { WorkflowManager } = await import("../tasks/workflow-manager");
|
|
597
|
+
// NOTE: @sonamu-kit/tasks 안에선 knex config를 수정하기 때문에 connection이 아닌 config 째로 보냅니다.
|
|
598
|
+
this._workflows = await WorkflowManager.create(DB.getDBConfig("w"), true);
|
|
599
|
+
if (!options) {
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
const enableWorker = options.enableWorker ?? isDaemonServer();
|
|
604
|
+
const defaultWorkerOptions = {
|
|
605
|
+
concurrency: os.cpus().length - 1,
|
|
606
|
+
usePubSub: true,
|
|
607
|
+
listenDelay: 500,
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
if (enableWorker) {
|
|
611
|
+
await this.workflows.setupWorker({
|
|
612
|
+
...defaultWorkerOptions,
|
|
613
|
+
...options.workerOptions,
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
|
|
566
618
|
private async boot(server: FastifyInstance, options: SonamuServerOptions) {
|
|
567
619
|
const port = options.listen?.port ?? 3000;
|
|
568
620
|
const host = options.listen?.host ?? "localhost";
|
|
569
621
|
|
|
570
622
|
server.addHook("onClose", async () => {
|
|
571
623
|
await options.lifecycle?.onShutdown?.(server);
|
|
624
|
+
await this.workflows.destroy();
|
|
572
625
|
await this.destroy();
|
|
573
626
|
});
|
|
574
627
|
|
|
@@ -640,6 +693,7 @@ class SonamuClass {
|
|
|
640
693
|
async destroy(): Promise<void> {
|
|
641
694
|
const { BaseModel } = await import("../database/base-model");
|
|
642
695
|
await BaseModel.destroy();
|
|
696
|
+
await this._workflows?.destroy();
|
|
643
697
|
await this.watcher?.close();
|
|
644
698
|
this.storage?.destroy();
|
|
645
699
|
}
|