@soat/cli 0.6.2 → 0.6.3

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.
Files changed (2) hide show
  1. package/dist/esm/index.js +53 -14
  2. package/package.json +2 -2
package/dist/esm/index.js CHANGED
@@ -16,7 +16,7 @@ import { program } from "commander";
16
16
  // package.json
17
17
  var package_default = {
18
18
  name: "@soat/cli",
19
- version: "0.6.2",
19
+ version: "0.6.3",
20
20
  type: "module",
21
21
  scripts: {
22
22
  generate: "tsx scripts/generate.ts",
@@ -121,6 +121,14 @@ var resolveEnvRef = /* @__PURE__ */__name(args => {
121
121
  value,
122
122
  env
123
123
  } = args;
124
+ const atRef = /^@([A-Za-z_][A-Za-z0-9_]*)$/.exec(value);
125
+ if (atRef) {
126
+ const resolved = env[atRef[1]];
127
+ if (resolved === void 0) {
128
+ throw new Error(`Missing environment variable: ${atRef[1]}`);
129
+ }
130
+ return resolved;
131
+ }
124
132
  const simple = /^\$([A-Za-z_][A-Za-z0-9_]*)$/.exec(value);
125
133
  if (simple) {
126
134
  const resolved = env[simple[1]];
@@ -139,6 +147,42 @@ var resolveEnvRef = /* @__PURE__ */__name(args => {
139
147
  }
140
148
  return value;
141
149
  }, "resolveEnvRef");
150
+ var resolveParameterPair = /* @__PURE__ */__name(args => {
151
+ const {
152
+ pair,
153
+ env
154
+ } = args;
155
+ const eqIdx = pair.indexOf("=");
156
+ if (eqIdx === 0) {
157
+ throw new Error(`Invalid --${PARAMETER_FLAG} value "${pair}". Parameter key cannot be empty.`);
158
+ }
159
+ if (eqIdx === -1) {
160
+ const key2 = pair.trim();
161
+ if (!key2) {
162
+ throw new Error(`Invalid --${PARAMETER_FLAG} value "${pair}". Parameter key cannot be empty.`);
163
+ }
164
+ const resolved = env[key2];
165
+ if (resolved === void 0) {
166
+ throw new Error(`Missing environment variable: ${key2}`);
167
+ }
168
+ return {
169
+ key: key2,
170
+ value: resolved
171
+ };
172
+ }
173
+ const key = pair.slice(0, eqIdx).trim();
174
+ const rawValue = pair.slice(eqIdx + 1);
175
+ if (!key) {
176
+ throw new Error(`Invalid --${PARAMETER_FLAG} value "${pair}". Parameter key cannot be empty.`);
177
+ }
178
+ return {
179
+ key,
180
+ value: resolveEnvRef({
181
+ value: rawValue,
182
+ env
183
+ })
184
+ };
185
+ }, "resolveParameterPair");
142
186
  var formationsWrapper = {
143
187
  id: "formations-wrapper",
144
188
  commands: FORMATION_COMMANDS,
@@ -149,7 +193,7 @@ var formationsWrapper = {
149
193
  type: "string"
150
194
  }, {
151
195
  name: "parameter",
152
- description: "Template parameter in key=value format (repeatable). Values may reference env vars ($VAR)",
196
+ description: "Template parameter in key=value format (repeatable). Values support env var references: $VAR, ${VAR}, or @VAR_NAME (shell-safe). Omit the value entirely (--parameter KEY) to auto-read KEY from the merged env.",
153
197
  required: false,
154
198
  type: "string"
155
199
  }, {
@@ -205,19 +249,14 @@ var formationsWrapper = {
205
249
  if (parameterValues.length > 0) {
206
250
  const resolvedParameters = {};
207
251
  for (const pair of parameterValues) {
208
- const eqIdx = pair.indexOf("=");
209
- if (eqIdx <= 0) {
210
- throw new Error(`Invalid --${PARAMETER_FLAG} value "${pair}". Expected key=value.`);
211
- }
212
- const key = pair.slice(0, eqIdx).trim();
213
- const rawValue = pair.slice(eqIdx + 1);
214
- if (!key) {
215
- throw new Error(`Invalid --${PARAMETER_FLAG} value "${pair}". Parameter key cannot be empty.`);
216
- }
217
- resolvedParameters[key] = resolveEnvRef({
218
- value: rawValue,
252
+ const {
253
+ key,
254
+ value
255
+ } = resolveParameterPair({
256
+ pair,
219
257
  env: mergedEnv
220
258
  });
259
+ resolvedParameters[key] = value;
221
260
  }
222
261
  forcedBody[PARAMETERS_FIELD] = resolvedParameters;
223
262
  }
@@ -2710,7 +2749,7 @@ var routes = {
2710
2749
  "in": "query"
2711
2750
  }, {
2712
2751
  "name": "status",
2713
- "description": "Filter by session status (open or closed)",
2752
+ "description": "Filter by session status (open, closed, or expired)",
2714
2753
  "required": false,
2715
2754
  "type": "string",
2716
2755
  "in": "query"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soat/cli",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@inquirer/input": "^5.0.12",
@@ -8,7 +8,7 @@
8
8
  "@ttoss/logger": "^0.8.10",
9
9
  "commander": "^14.0.3",
10
10
  "js-yaml": "^4.1.1",
11
- "@soat/sdk": "0.6.2"
11
+ "@soat/sdk": "0.6.3"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@ttoss/config": "^1.37.10",