{"_id":"@aeternity/contract-builder","_rev":"1-80938a2ebdd3b126233a8dbae229ad97","name":"@aeternity/contract-builder","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aeternity/contract-builder","version":"0.1.0","description":"Sophia smart contracts builder","main":"dist/loader.mjs","types":"dist/loader.d.ts","exports":"./dist/loader.js","bin":{"ae-contract-builder":"dist/cli.js"},"scripts":{"build":"tsc && babel src --out-dir dist --extensions .ts --source-maps true","commitlint":"commitlint --from develop","lint":"eslint . --ext .ts,.js,.mjs","test":"mocha './test/'","test:watch":"mocha './test/' --watch","prepare":"npm run build","prepublishOnly":"test/examples.sh","release":"standard-version --skip.tag"},"license":"ISC","keywords":["aeternity","blockchain","Sophia","smart contracts"],"dependencies":{"@aeternity/aepp-sdk":"^13.0.0","@types/lodash":"^4.14.192","commander":"^10.0.0","lodash":"^4.17.21","schema-utils":"^4.0.0","webpack":"^5.78.0","webpack-cli":"^5.0.1"},"repository":{"type":"git","url":"git+https://github.com/aeternity/contract-builder.git"},"devDependencies":{"@babel/cli":"^7.21.0","@babel/core":"^7.21.4","@babel/node":"^7.20.7","@babel/plugin-transform-runtime":"^7.21.4","@babel/preset-env":"^7.21.4","@babel/preset-typescript":"^7.21.4","@babel/register":"^7.21.0","@commitlint/cli":"^17.5.1","@commitlint/config-conventional":"^17.4.4","@types/chai":"^4.3.4","@types/mocha":"^10.0.1","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","babel-loader":"^9.1.2","babel-plugin-transform-inline-environment-variables":"^0.4.4","chai":"^4.3.7","eslint":"^8.38.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-airbnb-typescript":"^17.0.0","memfs":"^3.5.0","mocha":"^10.2.0","nyc":"^15.1.0","standard-version":"^9.5.0","ts-node":"^10.9.1","typescript":"^5.0.4"},"browserslist":["node >= 14.19"],"engines":{"node":">=14.19.0"},"gitHead":"c0c6a02f61b681cb7d6c02d943ed62ee61f8c9d1","bugs":{"url":"https://github.com/aeternity/contract-builder/issues"},"homepage":"https://github.com/aeternity/contract-builder#readme","_id":"@aeternity/contract-builder@0.1.0","_nodeVersion":"18.15.0","_npmVersion":"9.6.1","dist":{"integrity":"sha512-TR13cbulH1orEc/SvmE5fkoYk9lmMcrKRVJ+sQryGKDzvj1adKk16LiEG/deviXfyT8UFWfyMa5unKb3n5p4zw==","shasum":"8f2d35ea50e7c3f972dcdbf1c86d7c77d9584b12","tarball":"https://registry.npmjs.org/@aeternity/contract-builder/-/contract-builder-0.1.0.tgz","fileCount":23,"unpackedSize":27659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh+m6zrrWvIA5LMzUDGMBBvFdkDjjKxfkkazdEPozUJQIhAIhyQIcyjAfU1dzdqD1vyyM69PJr2y9EZ+OoWNkDSEAa"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMQcOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr1hw/8DZ3ojGvexByxc0gItQcg1N9ofzTMfYj9W6ikwQhHRfsrZKTb\r\nAJgjoWXjjT4PL6SqmpbtxXM/7Yyu61008MSwSOD6dybA4fXqmsPWYAeKT7iT\r\n7Vdop9Ugo5f0xTZJQi+4zVsq24/rzaSgIx9piXz2rfE0A9723Gbxcuy/bxaW\r\nD7wwNj5yQ2aE78vP4Y0B5/PCtincWWXRAwMgY8FaHasFtRzHbjBsxJtgJVcT\r\nqXHtn9vEMGIy+y3o/OOVlRoiN5FJGNIAfAp90i/qrgqG25q206jYMKtaZahJ\r\n1zLWR1+8tT8qT74qWgk5Lu1sWPy05f8X0dPvgfepPPLa0KzpEX91nbJ/eoAa\r\niFs/I2D2o7YCM3sNfAkh+ICNxlcYh46AVbq+/Vc1gH4/jq8HO0wVkXVHsPbz\r\nYLrF1UkhfqZWUxUF37gCt39qdHZpI/NbIcnCmozoc1MOY7yejfCzEQBZCkXU\r\nZLLYdDYkn222xbRx62lwRFoCNWqGkJltIK3c6ta52YlCglNBxC+4qYZB+G2A\r\n661rUp4KX9AeRftuf+KbdOTXyJeEacKlY/UmysoLXwUutHDt8PyKmL+cZO8B\r\n3TPk21Ts1gDoAYTPgh192rqjIOqRcIyM4wgYQMQ1sV1q41HB29BEtBtbZIp6\r\nChwzROa/9Byvq29QJRJ/N9C6U1Elq17n7To=\r\n=+0X3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"},"directories":{},"maintainers":[{"name":"aebot","email":"dincho.todorov@gmail.com"},{"name":"marc0olo","email":"info@walz-consulting.de"},{"name":"thepiwo","email":"piwo.mail@googlemail.com"},{"name":"dincho","email":"npm@xbuv.com"},{"name":"davidyuk","email":"denis_davidyuk@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/contract-builder_0.1.0_1680934670023_0.6366136138602136"},"_hasShrinkwrap":false}},"time":{"created":"2023-04-08T06:17:49.951Z","0.1.0":"2023-04-08T06:17:50.207Z","modified":"2024-02-20T13:17:11.939Z"},"maintainers":[{"email":"hanssv@gmail.com","name":"hanssv"},{"email":"dincho.todorov@gmail.com","name":"aebot"},{"email":"info@walz-consulting.de","name":"marc0olo"},{"email":"piwo.mail@googlemail.com","name":"thepiwo"},{"email":"npm@xbuv.com","name":"dincho"},{"email":"denis_davidyuk@hotmail.com","name":"davidyuk"}],"description":"Sophia smart contracts builder","homepage":"https://github.com/aeternity/contract-builder#readme","keywords":["aeternity","blockchain","Sophia","smart contracts"],"repository":{"type":"git","url":"git+https://github.com/aeternity/contract-builder.git"},"bugs":{"url":"https://github.com/aeternity/contract-builder/issues"},"license":"ISC","readme":"# @aeternity/contract-builder\n\n[![npm](https://img.shields.io/npm/v/@aeternity/contract-builder.svg)](https://www.npmjs.com/package/@aeternity/contract-builder)\n[![npm](https://img.shields.io/npm/l/@aeternity/contract-builder.svg)](https://www.npmjs.com/package/@aeternity/contract-builder)\n\nThis package simplifies contract preparation to be used in production by providing:\n- a webpack loader to import `.aes` files directly to JavaScript modules;\n- a CLI tool called `ae-contract-builder` to be used if webpack is not available or not configurable.\n\n## Usage guide\n\n### Installation\nFirstly, you need to add this package to your project\n```\n$ npm install @aeternity/contract-builder --save-dev\n```\nTo use `aesophia_cli` (enabled by default), `escript` needs to be available in PATH.\n\n### Setup as a webpack loader\n\nAdd the loader to your `webpack` config. For example:\n\n**webpack.config.js**\n\n```diff\nmodule.exports = {\n  module: {\n    rules: [{\n+      test: /\\.aes$/,\n+      use: [{\n+        loader: `@aeternity/contract-builder`,\n+        options: {\n+          compilerType: 'http', // or 'cli'\n+          compilerPath: './foo/aesophia_cli',\n+          compilerUrl: 'http://localhost:3080/',\n+          // the above is optional, uses CLI compiler by default\n+        },\n      }],\n    }],\n  },\n};\n```\n\nAnd run `webpack` via your preferred method.\n\n### Use as a separate tool\n\nTo build a smart contract into JavaScript module use\n```\n$ npx ae-contract-builder <path-to-contract-source.aes>\n```\nAlso, you can add `--watch` flag to watch for smart contract changes, specify multiple contracts one by one, or add this script to `package.json`.\n\nThe output file will be located in the same directory with `.js` extension instead of `.aes`.\n\n### Output format\nIn both cases, you would get a Contract's child class with inlined ACI and compiled bytecode. It can be used the same as `Contract` class but not needed to provide `aci`, `bytecode`, or `sourceCode`.\n\n```js\nimport MyContract from './MyContract.aes';\n// or import MyContract.js in case using ae-contract-builder\n\nconst myContract = await MyContract.initialize(aeSdk._getOptions());\nawait myContract.$deploy()\nawait myContract.foo('arg1', 'arg2')\n```\n\n## Examples\n\n- [webpack loader in Vue CLI](./examples/vue)\n- [`ae-contract-builder` in bare Node project](./examples/node)\n\n## Changelog\n\nWe keep our [Changelog](CHANGELOG.md) up to date.\n","readmeFilename":"README.md"}