diff --git a/clients/ts/package.json b/clients/ts/package.json index 8f4a77c6a..6e2a027d8 100644 --- a/clients/ts/package.json +++ b/clients/ts/package.json @@ -1,6 +1,6 @@ { - "name": "@boundaryml/baml-client", - "version": "1.0.2", + "name": "@boundaryml/baml-core", + "version": "1.0.3", "description": "", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -14,6 +14,10 @@ "test": "jest", "build": "tsc" }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, "keywords": [], "author": "contact@boundaryml.com", "license": "Apache-2.0", @@ -30,7 +34,7 @@ }, "dependencies": { "@anthropic-ai/sdk": "^0.12.3", - "baml-client-lib": "/Users/vbv/repos/gloo-lang/engine/baml-client-lib", + "@boundaryml/baml-ffi": "^0.1.0", "json-schema": "^0.4.0", "openai": "^4.25.0", "string-format": "^2.0.0", diff --git a/clients/ts/pnpm-lock.yaml b/clients/ts/pnpm-lock.yaml index ede53bbc3..b8c562b60 100644 --- a/clients/ts/pnpm-lock.yaml +++ b/clients/ts/pnpm-lock.yaml @@ -8,9 +8,9 @@ dependencies: '@anthropic-ai/sdk': specifier: ^0.12.3 version: 0.12.3 - baml-client-lib: - specifier: /Users/vbv/repos/gloo-lang/engine/baml-client-lib - version: link:../../engine/baml-client-lib + '@boundaryml/baml-ffi': + specifier: ^0.1.0 + version: 0.1.2 json-schema: specifier: ^0.4.0 version: 0.4.0 @@ -45,7 +45,7 @@ devDependencies: version: 29.7.0(@types/node@20.11.21)(ts-node@10.9.2) ts-jest: specifier: ^29.1.2 - version: 29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.3) + version: 29.1.2(@babel/core@7.24.0)(jest@29.7.0)(typescript@5.3.3) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@20.11.21)(typescript@5.3.3) @@ -55,18 +55,18 @@ devDependencies: packages: - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@anthropic-ai/sdk@0.12.3: resolution: {integrity: sha512-+LnITHTLxa5qVN4Zh+C72xCgELY9zKDSDnSq88CsqEnKy7rQ/U0PXk3micnvnRCNjXbzDHs+WOcTfYOKqqOdYw==} dependencies: - '@types/node': 18.19.8 + '@types/node': 18.19.21 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -74,7 +74,7 @@ packages: form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 - web-streams-polyfill: 3.3.2 + web-streams-polyfill: 3.3.3 transitivePeerDependencies: - encoding dev: false @@ -92,20 +92,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.7: - resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + /@babel/core@7.24.0: + resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.8 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helpers': 7.24.0 + '@babel/parser': 7.24.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -119,9 +119,9 @@ packages: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: true @@ -131,7 +131,7 @@ packages: dependencies: '@babel/compat-data': 7.23.5 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -145,31 +145,31 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -177,8 +177,8 @@ packages: '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} dev: true @@ -186,14 +186,14 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true /@babel/helper-string-parser@7.23.4: @@ -211,13 +211,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.8: - resolution: {integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==} + /@babel/helpers@7.24.0: + resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color dev: true @@ -231,162 +231,162 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.6: - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/runtime-corejs3@7.23.8: - resolution: {integrity: sha512-2ZzmcDugdm0/YQKFVYsXiwUN7USPX8PM7cytpb4PFl87fM+qYPSvTZX//8tyeJB1j0YDmafBJEbl5f8NfLyuKw==} + /@babel/runtime-corejs3@7.24.0: + resolution: {integrity: sha512-HxiRMOncx3ly6f3fcZ1GVKf+/EROcI9qwPgmij8Czqy6Okm/0T37T4y2ZIlLUuEUFjtM7NRsfdCO8Y3tAiJZew==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.35.1 + core-js-pure: 3.36.0 regenerator-runtime: 0.14.1 dev: false - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: true - /@babel/traverse@7.23.7: - resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + /@babel/traverse@7.24.0: + resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -395,16 +395,16 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.6: - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -416,6 +416,10 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true + /@boundaryml/baml-ffi@0.1.2: + resolution: {integrity: sha512-LvfD6gREhPGdoBgMdaZ8zg3Akho+1kZKQHFuA1gvss/RzA5FGLfSkNFANpHpDz3xgIM9n/PJa0fzedGacxDW3g==} + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -559,7 +563,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 '@types/node': 20.11.21 chalk: 4.1.2 collect-v8-coverage: 1.0.2 @@ -567,10 +571,10 @@ packages: glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.1 + istanbul-lib-instrument: 6.0.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 @@ -593,7 +597,7 @@ packages: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true @@ -622,9 +626,9 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -653,22 +657,22 @@ packages: chalk: 4.1.2 dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true @@ -676,17 +680,17 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -725,8 +729,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 @@ -735,20 +739,20 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: true /@types/babel__traverse@7.20.5: resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: true /@types/graceful-fs@4.1.9: @@ -791,8 +795,8 @@ packages: form-data: 4.0.0 dev: false - /@types/node@18.19.8: - resolution: {integrity: sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==} + /@types/node@18.19.21: + resolution: {integrity: sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw==} dependencies: undici-types: 5.26.5 dev: false @@ -898,17 +902,17 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /babel-jest@29.7.0(@babel/core@7.23.7): + /babel-jest@29.7.0(@babel/core@7.24.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.7) + babel-preset-jest: 29.6.3(@babel/core@7.24.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -920,7 +924,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -933,41 +937,41 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.7): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.23.7): + '@babel/core': 7.24.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.24.0): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) dev: true /balanced-match@1.0.2: @@ -992,15 +996,15 @@ packages: fill-range: 7.0.1 dev: true - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001579 - electron-to-chromium: 1.4.644 + caniuse-lite: 1.0.30001594 + electron-to-chromium: 1.4.693 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) + update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true /bs-logger@0.2.6: @@ -1035,8 +1039,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001579: - resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + /caniuse-lite@1.0.30001594: + resolution: {integrity: sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==} dev: true /chalk@2.4.2: @@ -1128,8 +1132,8 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /core-js-pure@3.35.1: - resolution: {integrity: sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ==} + /core-js-pure@3.36.0: + resolution: {integrity: sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==} requiresBuild: true dev: false @@ -1222,8 +1226,8 @@ packages: md5: 2.3.0 dev: false - /electron-to-chromium@1.4.644: - resolution: {integrity: sha512-zOnPndwz3u1sVFSyBcRWcn0529Kz+jr+tDxN9iP69I3CpC5wlvYmjLrK2O7TEsg2oDDoUqooeXqbiHLvXvl6Lg==} + /electron-to-chromium@1.4.693: + resolution: {integrity: sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==} dev: true /emittery@0.13.1: @@ -1241,8 +1245,8 @@ packages: is-arrayish: 0.2.1 dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: true @@ -1410,8 +1414,8 @@ packages: engines: {node: '>=8'} dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -1473,7 +1477,7 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /is-fullwidth-code-point@3.0.0: @@ -1509,8 +1513,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.7 - '@babel/parser': 7.23.6 + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -1518,15 +1522,15 @@ packages: - supports-color dev: true - /istanbul-lib-instrument@6.0.1: - resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + /istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.7 - '@babel/parser': 7.23.6 + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -1551,8 +1555,8 @@ packages: - supports-color dev: true - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -1637,11 +1641,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.11.21 - babel-jest: 29.7.0(@babel/core@7.23.7) + babel-jest: 29.7.0(@babel/core@7.24.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -1877,15 +1881,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 '@babel/generator': 7.23.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) - '@babel/types': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) + '@babel/types': 7.24.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -1896,7 +1900,7 @@ packages: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -2044,7 +2048,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /make-error@1.3.6: @@ -2166,7 +2170,7 @@ packages: resolution: {integrity: sha512-qLMFOizjxKuDfQkBrczZPYo6XVL4bdcuz9MR11Q+M91kGcs8dQw+O90nRcC+qWuhaGphQkfXQJMn4cd7Yew3Kg==} hasBin: true dependencies: - '@types/node': 18.19.8 + '@types/node': 18.19.21 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -2174,7 +2178,7 @@ packages: form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 - web-streams-polyfill: 3.3.2 + web-streams-polyfill: 3.3.3 transitivePeerDependencies: - encoding dev: false @@ -2320,8 +2324,8 @@ packages: hasBin: true dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -2474,7 +2478,7 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false - /ts-jest@29.1.2(@babel/core@7.23.7)(jest@29.7.0)(typescript@5.3.3): + /ts-jest@29.1.2(@babel/core@7.24.0)(jest@29.7.0)(typescript@5.3.3): resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -2495,7 +2499,7 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.0 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 jest: 29.7.0(@types/node@20.11.21)(ts-node@10.9.2) @@ -2503,7 +2507,7 @@ packages: json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.5.4 + semver: 7.6.0 typescript: 5.3.3 yargs-parser: 21.1.1 dev: true @@ -2558,14 +2562,14 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /update-browserslist-db@1.0.13(browserslist@4.22.2): + /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 dev: true @@ -2577,7 +2581,7 @@ packages: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 dev: true @@ -2588,8 +2592,8 @@ packages: makeerror: 1.0.12 dev: true - /web-streams-polyfill@3.3.2: - resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==} + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} dev: false @@ -2641,7 +2645,7 @@ packages: /xregexp@5.1.1: resolution: {integrity: sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==} dependencies: - '@babel/runtime-corejs3': 7.23.8 + '@babel/runtime-corejs3': 7.24.0 dev: false /y18n@5.0.8: @@ -2667,7 +2671,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/clients/ts/src/client_manager/base_provider.ts b/clients/ts/src/client_manager/base_provider.ts index 1442b0695..5381d3afc 100644 --- a/clients/ts/src/client_manager/base_provider.ts +++ b/clients/ts/src/client_manager/base_provider.ts @@ -1,4 +1,4 @@ -import { logLLMEvent } from "baml-client-lib"; +import { logLLMEvent } from "@boundaryml/baml-ffi"; import { LLMException } from "./errors"; abstract class BaseProvider { diff --git a/clients/ts/src/client_manager/llm_base_provider.ts b/clients/ts/src/client_manager/llm_base_provider.ts index be683c9fc..f6257b871 100644 --- a/clients/ts/src/client_manager/llm_base_provider.ts +++ b/clients/ts/src/client_manager/llm_base_provider.ts @@ -1,4 +1,4 @@ -import { logLLMEvent } from "baml-client-lib"; +import { logLLMEvent } from "@boundaryml/baml-ffi"; import { BaseProvider } from "./base_provider"; interface LLMChatMessage { diff --git a/clients/ts/src/client_manager/llm_chat_provider.ts b/clients/ts/src/client_manager/llm_chat_provider.ts index 1d3e945ec..9e789be3d 100644 --- a/clients/ts/src/client_manager/llm_chat_provider.ts +++ b/clients/ts/src/client_manager/llm_chat_provider.ts @@ -1,4 +1,4 @@ -import { logLLMEvent } from "baml-client-lib"; +import { logLLMEvent } from "@boundaryml/baml-ffi"; import { LLMBaseProvider, LLMBaseProviderArgs, LLMChatMessage, LLMResponse } from "./llm_base_provider"; import format from 'string-format'; diff --git a/clients/ts/src/index.ts b/clients/ts/src/index.ts index 4ba6b4b98..8cd16654e 100644 --- a/clients/ts/src/index.ts +++ b/clients/ts/src/index.ts @@ -1,4 +1,4 @@ -import { traceAsync, setTags, setVariant } from "baml-client-lib"; +import { traceAsync, setTags, setVariant } from "@boundaryml/baml-ffi"; export { traceAsync, setTags, setVariant }; \ No newline at end of file diff --git a/engine/Cargo.lock b/engine/Cargo.lock index 2aeea0678..3d3fe568a 100644 --- a/engine/Cargo.lock +++ b/engine/Cargo.lock @@ -179,7 +179,7 @@ dependencies = [ ] [[package]] -name = "baml-client-lib" +name = "baml-ffi" version = "0.14.0-canary.0" dependencies = [ "anyhow", @@ -1018,9 +1018,11 @@ dependencies = [ "internal-baml-schema-ast", "log", "rayon", + "regex", "semver", "serde", "serde_json", + "shellwords", "strsim 0.10.0", "textwrap 0.16.1", "whoami", diff --git a/engine/baml-cli/src/init_command/baml_src.rs b/engine/baml-cli/src/init_command/baml_src.rs index b6e9eeb58..8182cc696 100644 --- a/engine/baml-cli/src/init_command/baml_src.rs +++ b/engine/baml-cli/src/init_command/baml_src.rs @@ -26,7 +26,7 @@ impl LanguageConfig { pub fn name(&self) -> String { match self { LanguageConfig::Python(_) => "python".into(), - LanguageConfig::TypeScript(_) => "TypeScript".into(), + LanguageConfig::TypeScript(_) => "typescript".into(), } } } diff --git a/engine/baml-cli/src/version_command.rs b/engine/baml-cli/src/version_command.rs index 24f8391d1..fd0dc2b51 100644 --- a/engine/baml-cli/src/version_command.rs +++ b/engine/baml-cli/src/version_command.rs @@ -34,7 +34,7 @@ pub struct GeneratorVersion { pub name: String, pub dir: PathBuf, pub language: String, - pub current_version: String, + pub current_version: Option, pub latest_version: Option, pub recommended_update: Option, } @@ -68,8 +68,7 @@ pub fn get_client_version( })?; cmd.current_dir(&project_root); - let output = cmd - .output() + cmd.output() .map_err(|e| CliError::StringError(e.to_string())) .map_err(|e| CliError::StringError(format!("{} Error: {}", "Failed!".red(), e))) .and_then(|e| { @@ -82,33 +81,7 @@ pub fn get_client_version( } Ok(String::from_utf8(e.stdout)?) - })?; - - let version_line_re = Regex::new(r#"(?i)\b(?:version)\b"#).map_err(|e| { - CliError::StringError(format!("{} Error: {}", "Failed!".red(), e.to_string())) - })?; - - let Some(version_line) = output.lines().find(|line| version_line_re.is_match(line)) else { - return Err(CliError::StringError(format!( - "{} Error: {}", - "Failed!".red(), - "Could not infer the version of the client" - ))); - }; - - let version_re = Regex::new("[0-9][^ ]*").map_err(|e| { - CliError::StringError(format!("{} Error: {}", "Failed!".red(), e.to_string())) - })?; - - let Some(version) = version_re.find(version_line) else { - return Err(CliError::StringError(format!( - "{} Error: {}", - "Failed!".red(), - "Could not parse the version of the client" - ))); - }; - - Ok(version.as_str().to_string()) + }) } pub fn recommended_update(current: &str, latest: &Option) -> Option { @@ -164,26 +137,45 @@ pub fn check_for_updates(baml_dir_override: &Option) -> Result latest_versions.py_client.clone(), "typescript" => latest_versions.ts_client.clone(), _ => None, }; - let recommended_update = recommended_update(¤t_version, &latest_version); - ret.generators.push(GeneratorVersion { - name: gen.name, - dir: gen.project_root.canonicalize()?, - language: gen.language.as_str().to_string(), - current_version: current_version, - latest_version: latest_version, - recommended_update: recommended_update, - }); + match get_client_version( + gen.project_root.to_str().unwrap(), + gen.package_version_command.as_str(), + ) + .and_then(|v| { + gen.language + .parse_version(v.as_str()) + .map_err(|e| CliError::StringError(e.to_string())) + }) { + Ok(current_version) => { + let recommended_update = recommended_update(¤t_version, &latest_version); + + ret.generators.push(GeneratorVersion { + name: gen.name, + dir: gen.project_root.canonicalize()?, + language: gen.language.as_str().to_string(), + current_version: Some(current_version), + latest_version, + recommended_update, + }); + } + Err(e) => { + log::warn!("Failed to get version for {}: {}", gen.name, e); + ret.generators.push(GeneratorVersion { + name: gen.name, + dir: gen.project_root.canonicalize()?, + language: gen.language.as_str().to_string(), + current_version: None, + latest_version, + recommended_update: None, + }); + } + } } } @@ -235,11 +227,19 @@ pub fn run(args: &VersionArgs) -> Result<(), CliError> { } in generators.iter() { println!( - "{} {current_version} via {} {}", + "{} {} via {} {}", format!("{language} client").cyan(), + current_version + .as_ref() + .map_or("(not_installed)".to_string(), |v| v.to_string()), format!("generator {name}").cyan(), recommended_update.as_ref().map_or( - "(up-to-date)".to_string(), + if current_version.is_none() { + "(run `baml update-client` to install)" + } else { + "(up-to-date)" + } + .to_string(), |latest| format!("(update recommended: {})", latest.green()) ) ); diff --git a/engine/baml-client-lib/Cargo.toml b/engine/baml-client-lib/Cargo.toml index 8b2b2c3d0..1d2a508c0 100644 --- a/engine/baml-client-lib/Cargo.toml +++ b/engine/baml-client-lib/Cargo.toml @@ -1,6 +1,6 @@ [package] edition = "2021" -name = "baml-client-lib" +name = "baml-ffi" version.workspace = true authors.workspace = true description.workspace = true @@ -17,7 +17,10 @@ opentelemetry_sdk = { version = "0.21.2", features = [ "rt-tokio-current-thread", "trace", ] } -reqwest = { version = "0.11.24", features = ["json"] } +reqwest = { version = "0.11.24", features = [ + "json", + "rustls-tls", +], default-features = false } serde.workspace = true serde_json.workspace = true tracing = "0.1.40" @@ -29,11 +32,6 @@ neon = { version = "1.0.0-alpha.4", features = ["napi-6", "futures"] } tracing-subscriber = "0.3.18" hostname = "0.3.1" colored = "2.1.0" -# tokio_unstable, feature = "tracing" -# tokio_unstable = { version = "*", features = ["tracing"] } -# [dependencies.neon] -# default-features = false -# features = ["napi-6", "promise-api"] [lib] crate-type = ["cdylib"] diff --git a/engine/baml-client-lib/index.node b/engine/baml-client-lib/index.node index 801a76347..eee1528ea 100755 Binary files a/engine/baml-client-lib/index.node and b/engine/baml-client-lib/index.node differ diff --git a/engine/baml-client-lib/package.json b/engine/baml-client-lib/package.json index 16ed6e143..914e45d08 100644 --- a/engine/baml-client-lib/package.json +++ b/engine/baml-client-lib/package.json @@ -1,14 +1,17 @@ { - "name": "baml-client-lib", - "version": "0.1.0", - "description": "Neon CPU Count", + "name": "@boundaryml/baml-ffi", + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, + "version": "0.1.3", + "description": "BAML FFI Layer", "main": "index.js", "types": "index.d.ts", "scripts": { - "build": "cargo-cp-artifact -nc index.node -- cargo build --message-format=json-render-diagnostics", + "build": "cargo-cp-artifact -a cdylib baml-ffi index.node -- cargo build --message-format=json-render-diagnostics", "build-debug": "pnpm run build", "build-release": "pnpm run build --release", - "install": "pnpm run build-release", "test": "cargo test" }, "license": "MIT", @@ -17,15 +20,12 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/neon-bindings/examples.git" + "url": "git+https://github.com/boundaryml/baml.git" }, "keywords": [ "Neon", "Examples" ], - "bugs": { - "url": "https://github.com/neon-bindings/examples/issues" - }, "homepage": "https://github.com/neon-bindings/examples#readme", "packageManager": "pnpm@8.0.0" } diff --git a/engine/baml-client-lib/src/api_wrapper/core_types.rs b/engine/baml-client-lib/src/api_wrapper/core_types.rs index 9fa7829cd..f577c887f 100644 --- a/engine/baml-client-lib/src/api_wrapper/core_types.rs +++ b/engine/baml-client-lib/src/api_wrapper/core_types.rs @@ -102,7 +102,7 @@ pub(crate) struct LogSchemaContext { pub hostname: String, pub process_id: String, pub stage: Option, - pub latency_ms: u64, + pub latency_ms: i128, pub start_time: String, pub tags: HashMap, pub event_chain: Vec, diff --git a/engine/baml-client-lib/src/otel/span_events/io.rs b/engine/baml-client-lib/src/otel/span_events/io.rs index 9b9f1e755..0bfacbe53 100644 --- a/engine/baml-client-lib/src/otel/span_events/io.rs +++ b/engine/baml-client-lib/src/otel/span_events/io.rs @@ -178,7 +178,7 @@ where S: for<'lookup> tracing_subscriber::registry::LookupSpan<'lookup>, { fn apply(&mut self, event: IOEvent, _span: &tracing_subscriber::registry::SpanRef<'a, S>) { - let ts = event.ts_ms; + let ts = event.ts_ms as i128; match event.is_input { true => { self.io.input = event.into(); diff --git a/engine/baml-lib/baml-core/Cargo.toml b/engine/baml-lib/baml-core/Cargo.toml index d2f89a4bc..efc86a8d9 100644 --- a/engine/baml-lib/baml-core/Cargo.toml +++ b/engine/baml-lib/baml-core/Cargo.toml @@ -25,6 +25,8 @@ textwrap = "0.16.0" either = "1.6.1" strsim = "0.10.0" semver = "1.0.20" +regex = "1.10.3" +shellwords = "1.1.0" [dev-dependencies] diff --git a/engine/baml-lib/baml-core/src/configuration/generator.rs b/engine/baml-lib/baml-core/src/configuration/generator.rs index 06f034c78..bb7b7d584 100644 --- a/engine/baml-lib/baml-core/src/configuration/generator.rs +++ b/engine/baml-lib/baml-core/src/configuration/generator.rs @@ -1,5 +1,7 @@ use crate::ast::WithName; +use anyhow::Result; use internal_baml_parser_database::ast::Expression; +use regex::Regex; use serde::Serialize; use std::{collections::HashMap, path::PathBuf, process::Command}; @@ -56,7 +58,7 @@ impl GeneratorLanguage { pub fn package_name(&self) -> &'static str { match self { Self::Python => "baml", - Self::TypeScript => "@boundaryml/baml-client", + Self::TypeScript => "@boundaryml/baml-core", } } @@ -76,23 +78,55 @@ impl GeneratorLanguage { String::from_utf8(output.stdout) .ok() .map(|v| v.trim().to_string()) - .map(|v| match self { - Self::Python => { - // Split the string by lines, and take the first line that has "version" in it - v.lines() - .find(|line| { - // Check if the line has "version" in it case-insensitively and has a whitespace - line.to_lowercase().contains("version") && line.contains(' ') - }) - .map(|line| line.split_whitespace().last().unwrap().to_string()) - } - Self::TypeScript => None, - }) + .map(|v| self.parse_version(v.as_str()).ok()) .flatten() }) .ok() .flatten() } + + pub fn parse_version(&self, output: &str) -> Result { + match self { + Self::Python => { + // Split the string by lines, and take the first line that has "version" in it + let version_line_re = Regex::new(r#"(?i)\b(?:version)\b"#)?; + + let Some(version_line) = output + .trim() + .lines() + .find(|line| version_line_re.is_match(line)) + else { + return Err(anyhow::format_err!( + "Could not infer the version of the client" + )); + }; + + let version_re = Regex::new("[0-9][^ ]*")?; + + let Some(version) = version_re.find(version_line) else { + return Err(anyhow::format_err!( + "Could not parse the version of the client" + )); + }; + + Ok(version.as_str().to_string()) + } + Self::TypeScript => { + // Look for "@" + let version_re = Regex::new(&format!(r#"{}@[^ ]+"#, self.package_name()))?; + + let Some(version) = version_re.find(output.trim()) else { + return Err(anyhow::format_err!( + "Could not parse the version of the client:{}\n{}", + self.package_name(), + output + )); + }; + + Ok(version.as_str().split('@').last().unwrap().to_string()) + } + } + } } #[derive(Debug, Serialize, Clone)] diff --git a/engine/baml-lib/baml-core/src/generate/generate_ts_client.rs b/engine/baml-lib/baml-core/src/generate/generate_ts_client.rs index 02f5394b4..2d6f59007 100644 --- a/engine/baml-lib/baml-core/src/generate/generate_ts_client.rs +++ b/engine/baml-lib/baml-core/src/generate/generate_ts_client.rs @@ -33,13 +33,13 @@ pub(crate) fn generate_ts(ir: &IntermediateRepr, gen: &Generator) -> std::io::Re let file = collector.start_file("./", "json_schema", false); file.add_import("json-schema", "JSONSchema7", None, false); file.add_import( - "@boundaryml/baml-client/deserializer/deserializer", + "@boundaryml/baml-core/deserializer/deserializer", "registerEnumDeserializer", None, false, ); file.add_import( - "@boundaryml/baml-client/deserializer/deserializer", + "@boundaryml/baml-core/deserializer/deserializer", "registerObjectDeserializer", None, false, diff --git a/engine/baml-lib/baml-core/src/generate/generate_ts_client/client.rs b/engine/baml-lib/baml-core/src/generate/generate_ts_client/client.rs index 896638fc7..ece0550ad 100644 --- a/engine/baml-lib/baml-core/src/generate/generate_ts_client/client.rs +++ b/engine/baml-lib/baml-core/src/generate/generate_ts_client/client.rs @@ -23,7 +23,7 @@ impl WithFileContent for Walker<'_, &Client> { fn write(&self, collector: &mut TSFileCollector) { let file = collector.start_file(self.file_dir(), self.file_name(), false); file.add_import( - "@boundaryml/baml-client/client_manager", + "@boundaryml/baml-core/client_manager", "clientManager", None, false, diff --git a/engine/baml-lib/baml-core/src/generate/generate_ts_client/function.rs b/engine/baml-lib/baml-core/src/generate/generate_ts_client/function.rs index 07975b9cd..8c86c2a26 100644 --- a/engine/baml-lib/baml-core/src/generate/generate_ts_client/function.rs +++ b/engine/baml-lib/baml-core/src/generate/generate_ts_client/function.rs @@ -70,9 +70,9 @@ impl WithFileContent for Walker<'_, &Function> { super::template::Template::Function, &function_content, )); - file.add_import("@boundaryml/baml-client", "setVariant", None, false); - file.add_import("@boundaryml/baml-client", "traceAsync", None, false); - file.add_import("@boundaryml/baml-client", "logLlmEvent", None, false); + file.add_import("@boundaryml/baml-core", "setVariant", None, false); + file.add_import("@boundaryml/baml-core", "traceAsync", None, false); + file.add_import("@boundaryml/baml-core", "logLlmEvent", None, false); file.add_export(self.elem().name.clone()); file.add_export(format!("I{}", self.elem().name)); file.add_export(format!("{}Function", self.elem().name)); diff --git a/engine/baml-lib/baml-core/src/generate/generate_ts_client/impl.rs b/engine/baml-lib/baml-core/src/generate/generate_ts_client/impl.rs index 148035e94..7412e859b 100644 --- a/engine/baml-lib/baml-core/src/generate/generate_ts_client/impl.rs +++ b/engine/baml-lib/baml-core/src/generate/generate_ts_client/impl.rs @@ -27,7 +27,7 @@ impl WithFileContent for Walker<'_, (&Function, &Impl)> { file.add_import("../client", impl_.elem.client.clone(), None, false); file.add_import("../function", function.elem.name.clone(), None, false); file.add_import( - "@boundaryml/baml-client/deserializer/deserializer", + "@boundaryml/baml-core/deserializer/deserializer", "Deserializer", None, false,