@ordergroove/smi-serve 1.6.1 → 1.6.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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.6.2](https://github.com/ordergroove/plush-toys/compare/@ordergroove/smi-serve@1.6.1...@ordergroove/smi-serve@1.6.2) (2024-04-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **smi-serve:** Don't return 'latest', rather actual value ([70053a4](https://github.com/ordergroove/plush-toys/commit/70053a421c6f6ada54709cedf0bea26801b330af))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [1.6.1](https://github.com/ordergroove/plush-toys/compare/@ordergroove/smi-serve@1.6.0...@ordergroove/smi-serve@1.6.1) (2024-04-17)
7
18
 
8
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ordergroove/smi-serve",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "Utility to serve a SMI template locally",
5
5
  "keywords": [],
6
6
  "author": "Eugenio Lattanzio <eugenio.lattanzio@ordergroove.com>",
@@ -32,5 +32,5 @@
32
32
  "ora": "^5.4.1",
33
33
  "yargs": "^17.7.2"
34
34
  },
35
- "gitHead": "d9870712ee118b0725bfaa92522a22c2076fc685"
35
+ "gitHead": "08e75f787367ce639b591f9e2f2402cfb8badfe6"
36
36
  }
package/src/init.js CHANGED
@@ -3,8 +3,15 @@ const fetch = require('node-fetch');
3
3
  const path = require('path');
4
4
  const inquirer = require('inquirer');
5
5
 
6
- const { getRC3Url } = require('./auth');
7
- const { getcwd, exec, unzip, getAuthorNameFromToken, packageJsonKeys } = require('./utils');
6
+ const { chooseMerchant, getRC3Url } = require('./auth');
7
+ const {
8
+ getcwd,
9
+ exec,
10
+ unzip,
11
+ getAuthorNameFromToken,
12
+ packageJsonKeys,
13
+ getMerchantTemplatesVersion
14
+ } = require('./utils');
8
15
  const { serve } = require('./serve');
9
16
  const { getValidSettings } = require('./select-merchant');
10
17
 
@@ -79,11 +86,14 @@ async function init(args) {
79
86
 
80
87
  let { token, merchant } = await getValidSettings(args);
81
88
 
82
- const {
83
- configs: msiConfigs,
84
- meta_fields,
85
- meta_fields_default
86
- } = await getConfigs(args, SUBSCRIPTION_MANAGEMENT_ENDPOINT, merchant, token);
89
+ const { configs: msiConfigs, meta_fields } = await getConfigs(
90
+ args,
91
+ SUBSCRIPTION_MANAGEMENT_ENDPOINT,
92
+ merchant,
93
+ token
94
+ );
95
+
96
+ let smiVersion = meta_fields?.dependencies['@ordergroove/smi-core'] || 'latest';
87
97
 
88
98
  const { useMerchantSpecific } = args.yes
89
99
  ? { useMerchantSpecific: true }
@@ -99,7 +109,7 @@ async function init(args) {
99
109
  }
100
110
  ]);
101
111
 
102
- let smiVersion, smiTemplateVersion;
112
+ let smiTemplateVersion;
103
113
 
104
114
  if (useMerchantSpecific && msiConfigs.smi && msiConfigs.smi.files) {
105
115
  if (msiConfigs.provisioned_with && SMI_TEMPLATES_NAME in msiConfigs.provisioned_with) {
@@ -112,24 +122,23 @@ async function init(args) {
112
122
  fs.writeFileSync(filepath, content, { encoding: 'utf8' });
113
123
  });
114
124
 
115
- if (!meta_fields_default) {
116
- smiVersion = (meta_fields.dependencies || {})[SMI_CORE_NAME];
117
- }
118
-
119
125
  console.log('Templates initialized');
120
126
  } else {
121
127
  console.log('Configs not found, defaulting to latest.');
122
- ({ version: smiTemplateVersion } = await (
123
- await fetch('https://static.ordergroove.com/@ordergroove/smi-templates/latest/package.json')
124
- ).json());
125
- await downloadAndExtract('https://static.ordergroove.com/@ordergroove/smi-templates/latest/dist/smi-template.zip');
128
+
129
+ smiTemplateVersion = await getMerchantTemplatesVersion(smiVersion);
130
+
131
+ await downloadAndExtract(
132
+ `https://static.ordergroove.com/@ordergroove/smi-templates/${smiTemplateVersion}/dist/smi-template.zip`
133
+ );
126
134
  }
135
+
136
+ console.log(`Using templates version ${smiTemplateVersion}`);
137
+
127
138
  if (!smiVersion) {
128
139
  smiVersion = 'latest';
129
140
  }
130
141
 
131
- console.log(`Using templates version ${smiTemplateVersion}`);
132
-
133
142
  // skip this for now
134
143
  const installEntrypoint = args.entrypoint;
135
144
 
package/src/utils.js CHANGED
@@ -4,7 +4,9 @@ const util = require('util');
4
4
  const path = require('path');
5
5
  const { spawn } = require('child_process');
6
6
  const ora = require('ora');
7
+ const semver = require('semver');
7
8
  const AdmZip = require('adm-zip');
9
+ const fetch = require('node-fetch');
8
10
 
9
11
  exports.glob = util.promisify(require('glob'));
10
12
 
@@ -173,6 +175,27 @@ function getAuthorNameFromToken(rawToken) {
173
175
 
174
176
  exports.getAuthorNameFromToken = getAuthorNameFromToken;
175
177
 
178
+ async function getMerchantTemplatesVersion(coreVersion) {
179
+ let templatesDevDependencies;
180
+ const coreJson = `https://static.ordergroove.com/@ordergroove/smi-core/${coreVersion}/package.json`;
181
+ const response = await fetch(coreJson);
182
+
183
+ if (response.ok) {
184
+ const registryJson = await response.json();
185
+ templatesDevDependencies = registryJson.devDependencies['@ordergroove/smi-templates'];
186
+ }
187
+
188
+ if (templatesDevDependencies) {
189
+ return semver.minVersion(templatesDevDependencies).raw;
190
+ } else {
191
+ const response = await fetch('https://static.ordergroove.com/@ordergroove/smi-templates/latest/package.json');
192
+ const json = await response.json();
193
+ return json.version;
194
+ }
195
+ }
196
+
197
+ exports.getMerchantTemplatesVersion = getMerchantTemplatesVersion;
198
+
176
199
  exports.packageJsonKeys = {
177
200
  OG_SECTION: 'ordergroove',
178
201
  CORE_VERSION: 'coreVersion',