@cosmwasm/ts-codegen 0.8.4 → 0.9.2

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/README.md CHANGED
@@ -77,48 +77,46 @@ For production usage, we recommend setting up a build script that uses the main
77
77
  ```ts
78
78
  import codegen from '@cosmwasm/ts-codegen';
79
79
 
80
- export const main = async () => {
81
- await codegen({
82
- contracts: [
83
- {
84
- name: 'SG721',
85
- dir: './path/to/sg721/schema'
86
- },
87
- {
88
- name: 'Minter',
89
- dir: './path/to/Minter/schema'
90
- }
91
- ],
92
- outPath: './path/to/code/src/',
93
- options: {
94
- bundle: {
95
- bundleFile: 'index.ts',
96
- scope: 'contracts'
97
- },
98
- types: {
99
- enabled: true
100
- },
101
- client: {
102
- enabled: true
103
- },
104
- reactQuery: {
105
- enabled: true,
106
- optionalClient: true,
107
- version: 'v4',
108
- mutations: true
109
- },
110
- recoil: {
111
- enabled: false
112
- },
113
- messageComposer: {
114
- enabled: false
115
- }
80
+ codegen({
81
+ contracts: [
82
+ {
83
+ name: 'SG721',
84
+ dir: './path/to/sg721/schema'
85
+ },
86
+ {
87
+ name: 'Minter',
88
+ dir: './path/to/Minter/schema'
116
89
  }
117
- });
118
- };
119
-
120
- main().then(() => {
121
- console.log('✨ all done!);
90
+ ],
91
+ outPath: './path/to/code/src/',
92
+
93
+ // options are completely optional ;)
94
+ options: {
95
+ bundle: {
96
+ bundleFile: 'index.ts',
97
+ scope: 'contracts'
98
+ },
99
+ types: {
100
+ enabled: true
101
+ },
102
+ client: {
103
+ enabled: true
104
+ },
105
+ reactQuery: {
106
+ enabled: true,
107
+ optionalClient: true,
108
+ version: 'v4',
109
+ mutations: true
110
+ },
111
+ recoil: {
112
+ enabled: false
113
+ },
114
+ messageComposer: {
115
+ enabled: false
116
+ }
117
+ }
118
+ }).then(() => {
119
+ console.log('✨ all done!');
122
120
  });
123
121
  ```
124
122
  #### Types
package/main/cmds.js CHANGED
@@ -11,7 +11,10 @@ var _createBoilerplate = _interopRequireDefault(require("./commands/create-boile
11
11
 
12
12
  var _generate2 = _interopRequireDefault(require("./commands/generate"));
13
13
 
14
+ var _install2 = _interopRequireDefault(require("./commands/install"));
15
+
14
16
  var Commands = {};
15
17
  exports.Commands = Commands;
16
18
  Commands['create-boilerplate'] = _createBoilerplate["default"];
17
- Commands['generate'] = _generate2["default"];
19
+ Commands['generate'] = _generate2["default"];
20
+ Commands['install'] = _install2["default"];
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
18
+ var _path = require("path");
19
+
20
+ var _mkdirp = require("mkdirp");
21
+
22
+ var _glob = require("glob");
23
+
24
+ var _rimraf = require("rimraf");
25
+
26
+ var _shelljs = require("shelljs");
27
+
28
+ var _prompt = require("../utils/prompt");
29
+
30
+ var _parsePackageName = require("parse-package-name");
31
+
32
+ var _os = require("os");
33
+
34
+ var _fs = require("fs");
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
+
40
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
41
+
42
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
43
+
44
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
45
+
46
+ var TMPDIR = (0, _os.tmpdir)();
47
+
48
+ var rnd = function rnd() {
49
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
50
+ };
51
+
52
+ var getPackages = function getPackages(names) {
53
+ return names.map(function (pkg) {
54
+ var _parse = (0, _parsePackageName.parse)(pkg),
55
+ name = _parse.name,
56
+ version = _parse.version;
57
+
58
+ return "".concat(name, "@").concat(version);
59
+ }).join(' ');
60
+ };
61
+
62
+ var _default = /*#__PURE__*/function () {
63
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
64
+ var _packageInfo$dependen, _thisPackage$devDepen;
65
+
66
+ var cur, thisPackage, _yield$prompt, pkg, tmp, pkgs, cmds, _iterator, _step, _step$value, src, dst, _pkg, packageInfo, deps;
67
+
68
+ return _regenerator["default"].wrap(function _callee$(_context) {
69
+ while (1) {
70
+ switch (_context.prev = _context.next) {
71
+ case 0:
72
+ // don't prompt if we got this...
73
+ if (argv._.length) {
74
+ argv.pkg = argv._;
75
+ } // current dir/package
76
+
77
+
78
+ cur = process.cwd();
79
+ _context.prev = 2;
80
+ thisPackage = JSON.parse((0, _fs.readFileSync)((0, _path.join)(cur, 'package.json'), 'utf-8'));
81
+ _context.next = 9;
82
+ break;
83
+
84
+ case 6:
85
+ _context.prev = 6;
86
+ _context.t0 = _context["catch"](2);
87
+ throw new Error('make sure you are inside of a telescope package!');
88
+
89
+ case 9:
90
+ _context.next = 11;
91
+ return (0, _prompt.prompt)([{
92
+ type: 'checkbox',
93
+ name: 'pkg',
94
+ message: 'which chain contracts do you want to support?',
95
+ choices: ['stargaze-claim', 'stargaze-ics721', 'stargaze-minter', 'stargaze-royalty-group', 'stargaze-sg721', 'stargaze-whitelist'].map(function (name) {
96
+ return {
97
+ name: name,
98
+ value: "@cosmjson/".concat(name)
99
+ };
100
+ })
101
+ }], argv);
102
+
103
+ case 11:
104
+ _yield$prompt = _context.sent;
105
+ pkg = _yield$prompt.pkg;
106
+ // install
107
+ if (!Array.isArray(pkg)) pkg = [pkg];
108
+ tmp = (0, _path.join)(TMPDIR, rnd());
109
+ (0, _mkdirp.sync)(tmp);
110
+ process.chdir(tmp);
111
+ (0, _shelljs.exec)("npm install ".concat(getPackages(pkg), " --production --prefix ./smart-contracts")); // protos
112
+
113
+ pkgs = (0, _glob.sync)('./smart-contracts/**/package.json');
114
+ cmds = pkgs.filter(function (f) {
115
+ return f !== './smart-contracts/package.json';
116
+ }).map(function (f) {
117
+ return (0, _path.resolve)((0, _path.join)(tmp, f));
118
+ }).map(function (conf) {
119
+ var extDir = (0, _path.dirname)(conf);
120
+ var dir = extDir.split('node_modules/')[1];
121
+ var dst = (0, _path.basename)(dir);
122
+ var files = (0, _glob.sync)("".concat(extDir, "/**/*"), {
123
+ nodir: true
124
+ });
125
+ files.forEach(function (f) {
126
+ if ((0, _path.extname)(f) === '.json' || f === 'package.json' || /license/i.test(f) || /readme/i.test(f)) return;
127
+ (0, _rimraf.sync)(f);
128
+ });
129
+ return [extDir, (0, _path.resolve)((0, _path.join)(cur, 'contracts', dst)), dir];
130
+ }); // move protos
131
+
132
+ _iterator = _createForOfIteratorHelper(cmds);
133
+
134
+ try {
135
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
136
+ _step$value = (0, _slicedToArray2["default"])(_step.value, 3), src = _step$value[0], dst = _step$value[1], _pkg = _step$value[2];
137
+ (0, _rimraf.sync)(dst);
138
+ console.log("installing ".concat(_pkg, "..."));
139
+ (0, _mkdirp.sync)((0, _path.dirname)(dst));
140
+ (0, _shelljs.exec)("mv ".concat(src, " ").concat(dst));
141
+ } // package
142
+
143
+ } catch (err) {
144
+ _iterator.e(err);
145
+ } finally {
146
+ _iterator.f();
147
+ }
148
+
149
+ packageInfo = JSON.parse((0, _fs.readFileSync)('./smart-contracts/package.json', 'utf-8'));
150
+ deps = (_packageInfo$dependen = packageInfo.dependencies) !== null && _packageInfo$dependen !== void 0 ? _packageInfo$dependen : {};
151
+ thisPackage.devDependencies = (_thisPackage$devDepen = thisPackage.devDependencies) !== null && _thisPackage$devDepen !== void 0 ? _thisPackage$devDepen : {};
152
+ thisPackage.devDependencies = _objectSpread(_objectSpread({}, thisPackage.devDependencies), deps);
153
+ thisPackage.devDependencies = Object.fromEntries(Object.entries(thisPackage.devDependencies).sort());
154
+ (0, _fs.writeFileSync)((0, _path.join)(cur, 'package.json'), JSON.stringify(thisPackage, null, 2)); // cleanup
155
+
156
+ (0, _rimraf.sync)(tmp);
157
+ process.chdir(cur);
158
+
159
+ case 30:
160
+ case "end":
161
+ return _context.stop();
162
+ }
163
+ }
164
+ }, _callee, null, [[2, 6]]);
165
+ }));
166
+
167
+ return function (_x) {
168
+ return _ref.apply(this, arguments);
169
+ };
170
+ }();
171
+
172
+ exports["default"] = _default;
package/module/cmds.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import _create_boilerplate from './commands/create-boilerplate';
2
2
  import _generate from './commands/generate';
3
+ import _install from './commands/install';
3
4
  const Commands = {};
4
5
  Commands['create-boilerplate'] = _create_boilerplate;
5
6
  Commands['generate'] = _generate;
7
+ Commands['install'] = _install;
6
8
  export { Commands };
@@ -0,0 +1,101 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ import { resolve, join, dirname, basename, extname } from 'path';
8
+ import { sync as mkdirp } from 'mkdirp';
9
+ import { sync as glob } from 'glob';
10
+ import { sync as rimraf } from 'rimraf';
11
+ import { exec } from 'shelljs';
12
+ import { prompt } from '../utils/prompt';
13
+ import { parse } from 'parse-package-name';
14
+ import { tmpdir } from 'os';
15
+ import { readFileSync, writeFileSync } from 'fs';
16
+ const TMPDIR = tmpdir();
17
+
18
+ const rnd = () => Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
19
+
20
+ const getPackages = names => {
21
+ return names.map(pkg => {
22
+ const {
23
+ name,
24
+ version
25
+ } = parse(pkg);
26
+ return `${name}@${version}`;
27
+ }).join(' ');
28
+ };
29
+
30
+ export default (async argv => {
31
+ // don't prompt if we got this...
32
+ if (argv._.length) {
33
+ argv.pkg = argv._;
34
+ } // current dir/package
35
+
36
+
37
+ const cur = process.cwd();
38
+ let thisPackage;
39
+
40
+ try {
41
+ thisPackage = JSON.parse(readFileSync(join(cur, 'package.json'), 'utf-8'));
42
+ } catch (e) {
43
+ throw new Error('make sure you are inside of a telescope package!');
44
+ } // what are we installing?
45
+
46
+
47
+ let {
48
+ pkg
49
+ } = await prompt([{
50
+ type: 'checkbox',
51
+ name: 'pkg',
52
+ message: 'which chain contracts do you want to support?',
53
+ choices: ['stargaze-claim', 'stargaze-ics721', 'stargaze-minter', 'stargaze-royalty-group', 'stargaze-sg721', 'stargaze-whitelist'].map(name => {
54
+ return {
55
+ name,
56
+ value: `@cosmjson/${name}`
57
+ };
58
+ })
59
+ }], argv); // install
60
+
61
+ if (!Array.isArray(pkg)) pkg = [pkg];
62
+ const tmp = join(TMPDIR, rnd());
63
+ mkdirp(tmp);
64
+ process.chdir(tmp);
65
+ exec(`npm install ${getPackages(pkg)} --production --prefix ./smart-contracts`); // protos
66
+
67
+ const pkgs = glob('./smart-contracts/**/package.json');
68
+ const cmds = pkgs.filter(f => {
69
+ return f !== './smart-contracts/package.json';
70
+ }).map(f => resolve(join(tmp, f))).map(conf => {
71
+ const extDir = dirname(conf);
72
+ const dir = extDir.split('node_modules/')[1];
73
+ const dst = basename(dir);
74
+ const files = glob(`${extDir}/**/*`, {
75
+ nodir: true
76
+ });
77
+ files.forEach(f => {
78
+ if (extname(f) === '.json' || f === 'package.json' || /license/i.test(f) || /readme/i.test(f)) return;
79
+ rimraf(f);
80
+ });
81
+ return [extDir, resolve(join(cur, 'contracts', dst)), dir];
82
+ }); // move protos
83
+
84
+ for (const [src, dst, pkg] of cmds) {
85
+ rimraf(dst);
86
+ console.log(`installing ${pkg}...`);
87
+ mkdirp(dirname(dst));
88
+ exec(`mv ${src} ${dst}`);
89
+ } // package
90
+
91
+
92
+ const packageInfo = JSON.parse(readFileSync('./smart-contracts/package.json', 'utf-8'));
93
+ const deps = packageInfo.dependencies ?? {};
94
+ thisPackage.devDependencies = thisPackage.devDependencies ?? {};
95
+ thisPackage.devDependencies = _objectSpread(_objectSpread({}, thisPackage.devDependencies), deps);
96
+ thisPackage.devDependencies = Object.fromEntries(Object.entries(thisPackage.devDependencies).sort());
97
+ writeFileSync(join(cur, 'package.json'), JSON.stringify(thisPackage, null, 2)); // cleanup
98
+
99
+ rimraf(tmp);
100
+ process.chdir(cur);
101
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmwasm/ts-codegen",
3
- "version": "0.8.4",
3
+ "version": "0.9.2",
4
4
  "description": "@cosmwasm/ts-codegen converts your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.",
5
5
  "author": "Dan Lynch <pyramation@gmail.com>",
6
6
  "homepage": "https://github.com/cosmwasm/ts-codegen",
@@ -91,8 +91,9 @@
91
91
  "minimist": "1.2.6",
92
92
  "mkdirp": "1.0.4",
93
93
  "parse-package-name": "1.0.0",
94
+ "rimraf": "3.0.2",
94
95
  "shelljs": "0.8.5",
95
96
  "wasm-ast-types": "^0.7.0"
96
97
  },
97
- "gitHead": "342eff95ce0b4f1aab43b3cf3f40870372dfba83"
98
+ "gitHead": "d8fee5e217d2cecf5e2e7534245b6f3fb2d883c4"
98
99
  }