@awsless/cli 0.1.4 → 0.1.6

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/dist/bin.js CHANGED
@@ -6,60 +6,39 @@ var __defProp = Object.defineProperty;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- function __accessProp(key) {
10
- return this[key];
11
- }
12
- var __toESMCache_node;
13
- var __toESMCache_esm;
14
9
  var __toESM = (mod, isNodeMode, target) => {
15
- var canCache = mod != null && typeof mod === "object";
16
- if (canCache) {
17
- var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
18
- var cached = cache.get(mod);
19
- if (cached)
20
- return cached;
21
- }
22
10
  target = mod != null ? __create(__getProtoOf(mod)) : {};
23
11
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
24
12
  for (let key of __getOwnPropNames(mod))
25
13
  if (!__hasOwnProp.call(to, key))
26
14
  __defProp(to, key, {
27
- get: __accessProp.bind(mod, key),
15
+ get: () => mod[key],
28
16
  enumerable: true
29
17
  });
30
- if (canCache)
31
- cache.set(mod, to);
32
18
  return to;
33
19
  };
20
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
34
21
  var __toCommonJS = (from) => {
35
- var entry = (__moduleCache ??= new WeakMap).get(from), desc;
22
+ var entry = __moduleCache.get(from), desc;
36
23
  if (entry)
37
24
  return entry;
38
25
  entry = __defProp({}, "__esModule", { value: true });
39
- if (from && typeof from === "object" || typeof from === "function") {
40
- for (var key of __getOwnPropNames(from))
41
- if (!__hasOwnProp.call(entry, key))
42
- __defProp(entry, key, {
43
- get: __accessProp.bind(from, key),
44
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
45
- });
46
- }
26
+ if (from && typeof from === "object" || typeof from === "function")
27
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
28
+ get: () => from[key],
29
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
30
+ }));
47
31
  __moduleCache.set(from, entry);
48
32
  return entry;
49
33
  };
50
- var __moduleCache;
51
34
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
52
- var __returnValue = (v) => v;
53
- function __exportSetter(name, newValue) {
54
- this[name] = __returnValue.bind(null, newValue);
55
- }
56
35
  var __export = (target, all) => {
57
36
  for (var name in all)
58
37
  __defProp(target, name, {
59
38
  get: all[name],
60
39
  enumerable: true,
61
40
  configurable: true,
62
- set: __exportSetter.bind(all, name)
41
+ set: (newValue) => all[name] = () => newValue
63
42
  });
64
43
  };
65
44
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
@@ -853,7 +832,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
853
832
  this._exitCallback = (err) => {
854
833
  if (err.code !== "commander.executeSubCommandAsync") {
855
834
  throw err;
856
- }
835
+ } else {}
857
836
  };
858
837
  }
859
838
  return this;
@@ -3090,7 +3069,7 @@ var require_cell = __commonJS((exports, module) => {
3090
3069
  let content = utils.truncate(this.content, 10, this.truncate);
3091
3070
  if (!lineNum) {
3092
3071
  info(`${this.y}-${this.x}: ${this.rowSpan - lineNum}x${this.colSpan} Cell ${content}`);
3093
- }
3072
+ } else {}
3094
3073
  let padLen = Math.max(this.height - this.lines.length, 0);
3095
3074
  let padTop;
3096
3075
  switch (this.vAlign) {
@@ -26859,7 +26838,7 @@ var require_node_gyp_build_optional_packages = __commonJS((exports, module) => {
26859
26838
 
26860
26839
  // ../../node_modules/.pnpm/msgpackr-extract@3.0.4/node_modules/msgpackr-extract/index.js
26861
26840
  var require_msgpackr_extract = __commonJS((exports, module) => {
26862
- var __dirname = "/Users/work/Code/awsless/node_modules/.pnpm/msgpackr-extract@3.0.4/node_modules/msgpackr-extract";
26841
+ var __dirname = "/Users/ivandasilveira/Sites/@awsless/node_modules/.pnpm/msgpackr-extract@3.0.4/node_modules/msgpackr-extract";
26863
26842
  module.exports = require_node_gyp_build_optional_packages()(__dirname);
26864
26843
  });
26865
26844
 
@@ -39727,7 +39706,7 @@ var require_src3 = __commonJS((exports) => {
39727
39706
 
39728
39707
  // ../../node_modules/.pnpm/@grpc+grpc-js@1.12.6/node_modules/@grpc/grpc-js/build/src/channelz.js
39729
39708
  var require_channelz = __commonJS((exports) => {
39730
- var __dirname = "/Users/work/Code/awsless/node_modules/.pnpm/@grpc+grpc-js@1.12.6/node_modules/@grpc/grpc-js/build/src";
39709
+ var __dirname = "/Users/ivandasilveira/Sites/@awsless/node_modules/.pnpm/@grpc+grpc-js@1.12.6/node_modules/@grpc/grpc-js/build/src";
39731
39710
  Object.defineProperty(exports, "__esModule", { value: true });
39732
39711
  exports.registerChannelzSocket = exports.registerChannelzServer = exports.registerChannelzSubchannel = exports.registerChannelzChannel = exports.ChannelzCallTrackerStub = exports.ChannelzCallTracker = exports.ChannelzChildrenTrackerStub = exports.ChannelzChildrenTracker = exports.ChannelzTrace = exports.ChannelzTraceStub = undefined;
39733
39712
  exports.unregisterChannelzRef = unregisterChannelzRef;
@@ -57231,7 +57210,7 @@ var require_zipEntries = __commonJS((exports, module) => {
57231
57210
  if (this.centralDirRecords !== this.files.length) {
57232
57211
  if (this.centralDirRecords !== 0 && this.files.length === 0) {
57233
57212
  throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
57234
- }
57213
+ } else {}
57235
57214
  }
57236
57215
  },
57237
57216
  readEndOfCentral: function() {
@@ -74452,7 +74431,7 @@ WD9f
74452
74431
 
74453
74432
  // ../../node_modules/.pnpm/ioredis@5.10.1_supports-color@8.1.1/node_modules/ioredis/built/utils/index.js
74454
74433
  var require_utils5 = __commonJS((exports) => {
74455
- var __dirname = "/Users/work/Code/awsless/node_modules/.pnpm/ioredis@5.10.1_supports-color@8.1.1/node_modules/ioredis/built/utils";
74434
+ var __dirname = "/Users/ivandasilveira/Sites/@awsless/node_modules/.pnpm/ioredis@5.10.1_supports-color@8.1.1/node_modules/ioredis/built/utils";
74456
74435
  Object.defineProperty(exports, "__esModule", { value: true });
74457
74436
  exports.noop = exports.defaults = exports.Debug = exports.getPackageMeta = exports.zipMap = exports.CONNECTION_CLOSED_ERROR_MSG = exports.shuffle = exports.sample = exports.resolveTLSProfile = exports.parseURL = exports.optimizeErrorStack = exports.toArg = exports.convertMapToArray = exports.convertObjectToArray = exports.timeout = exports.packObject = exports.isInt = exports.wrapMultiResult = exports.convertBufferToString = undefined;
74458
74437
  var fs_1 = __require("fs");
@@ -74738,7 +74717,7 @@ var require_argumentParsers = __commonJS((exports) => {
74738
74717
 
74739
74718
  // ../../node_modules/.pnpm/ioredis@5.10.1_supports-color@8.1.1/node_modules/ioredis/built/Command.js
74740
74719
  var require_Command = __commonJS((exports) => {
74741
- var __dirname = "/Users/work/Code/awsless/node_modules/.pnpm/ioredis@5.10.1_supports-color@8.1.1/node_modules/ioredis/built";
74720
+ var __dirname = "/Users/ivandasilveira/Sites/@awsless/node_modules/.pnpm/ioredis@5.10.1_supports-color@8.1.1/node_modules/ioredis/built";
74742
74721
  Object.defineProperty(exports, "__esModule", { value: true });
74743
74722
  var commands_1 = require_built();
74744
74723
  var calculateSlot = require_lib4();
@@ -95385,7 +95364,7 @@ var require_db_util = __commonJS((exports) => {
95385
95364
 
95386
95365
  // ../../node_modules/.pnpm/redis-memory-server@0.16.1_supports-color@8.1.1/node_modules/redis-memory-server/lib/util/RedisInstance.js
95387
95366
  var require_RedisInstance = __commonJS((exports) => {
95388
- var __dirname = "/Users/work/Code/awsless/node_modules/.pnpm/redis-memory-server@0.16.1_supports-color@8.1.1/node_modules/redis-memory-server/lib/util";
95367
+ var __dirname = "/Users/ivandasilveira/Sites/@awsless/node_modules/.pnpm/redis-memory-server@0.16.1_supports-color@8.1.1/node_modules/redis-memory-server/lib/util";
95389
95368
  var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P3, generator) {
95390
95369
  function adopt(value) {
95391
95370
  return value instanceof P3 ? value : new P3(function(resolve3) {
@@ -101299,7 +101278,7 @@ var require_unbzip2_stream = __commonJS((exports, module) => {
101299
101278
  stream2.queue(d5);
101300
101279
  if (d5 !== null) {
101301
101280
  outlength += d5.length;
101302
- }
101281
+ } else {}
101303
101282
  });
101304
101283
  } catch (e4) {
101305
101284
  stream2.emit("error", e4);
@@ -114479,7 +114458,7 @@ var getSanitizedDevTypeScriptVersion = (version2 = "") => {
114479
114458
  };
114480
114459
 
114481
114460
  // ../../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.973.14_aws-crt@1.30.0_supports-color@8.1.1_/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptUserAgentPair.js
114482
- var __dirname = "/Users/work/Code/awsless/node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.973.14_aws-crt@1.30.0_supports-color@8.1.1_/node_modules/@aws-sdk/util-user-agent-node/dist-es";
114461
+ var __dirname = "/Users/ivandasilveira/Sites/@awsless/node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.973.14_aws-crt@1.30.0_supports-color@8.1.1_/node_modules/@aws-sdk/util-user-agent-node/dist-es";
114483
114462
  var tscVersion;
114484
114463
  var TS_PACKAGE_JSON = join7("node_modules", "typescript", "package.json");
114485
114464
  var getTypeScriptUserAgentPair = async () => {
@@ -128401,7 +128380,7 @@ import {
128401
128380
  UpdateKeysCommand
128402
128381
  } from "@aws-sdk/client-cloudfront-keyvaluestore";
128403
128382
 
128404
- // ../../node_modules/.pnpm/@terraforge+core@0.0.44_aws-crt@1.30.0_debug@4.4.3_supports-color@8.1.1__supports-color@8.1.1__graphology-types@0.24.8/node_modules/@terraforge/core/dist/index.mjs
128383
+ // ../../node_modules/.pnpm/@terraforge+core@0.0.43_aws-crt@1.30.0_debug@4.4.3_supports-color@8.1.1__supports-color@8.1.1__graphology-types@0.24.8/node_modules/@terraforge/core/dist/index.mjs
128405
128384
  var import_async_on_exit = __toESM(require_async_on_exit(), 1);
128406
128385
 
128407
128386
  // ../../node_modules/.pnpm/p-limit@6.2.0/node_modules/p-limit/index.js
@@ -131556,17 +131535,6 @@ var $forEachNodeInTopologicalOrder = sort.forEachNodeInTopologicalOrder;
131556
131535
  var $topologicalSort = sort.topologicalSort;
131557
131536
  var $topologicalGenerations = sort.topologicalGenerations;
131558
131537
  var $forEachTopologicalGeneration = sort.forEachTopologicalGeneration;
131559
- // ../../node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm/sha1.js
131560
- import { createHash as createHash3 } from "crypto";
131561
- function sha1(bytes) {
131562
- if (Array.isArray(bytes)) {
131563
- bytes = Buffer.from(bytes);
131564
- } else if (typeof bytes === "string") {
131565
- bytes = Buffer.from(bytes, "utf8");
131566
- }
131567
- return createHash3("sha1").update(bytes).digest();
131568
- }
131569
- var sha1_default = sha1;
131570
131538
 
131571
131539
  // ../../node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm/regex.js
131572
131540
  var regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
@@ -131632,6 +131600,18 @@ function v35(version2, hash, value, namespace, buf, offset) {
131632
131600
  return unsafeStringify(bytes);
131633
131601
  }
131634
131602
 
131603
+ // ../../node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm/sha1.js
131604
+ import { createHash as createHash3 } from "crypto";
131605
+ function sha1(bytes) {
131606
+ if (Array.isArray(bytes)) {
131607
+ bytes = Buffer.from(bytes);
131608
+ } else if (typeof bytes === "string") {
131609
+ bytes = Buffer.from(bytes, "utf8");
131610
+ }
131611
+ return createHash3("sha1").update(bytes).digest();
131612
+ }
131613
+ var sha1_default = sha1;
131614
+
131635
131615
  // ../../node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm/v5.js
131636
131616
  function v5(value, namespace, buf, offset) {
131637
131617
  return v35(80, sha1_default, value, namespace, buf, offset);
@@ -131738,7 +131718,7 @@ var getter = (options = {}) => {
131738
131718
  };
131739
131719
  var get = getter();
131740
131720
 
131741
- // ../../node_modules/.pnpm/@terraforge+core@0.0.44_aws-crt@1.30.0_debug@4.4.3_supports-color@8.1.1__supports-color@8.1.1__graphology-types@0.24.8/node_modules/@terraforge/core/dist/index.mjs
131721
+ // ../../node_modules/.pnpm/@terraforge+core@0.0.43_aws-crt@1.30.0_debug@4.4.3_supports-color@8.1.1__supports-color@8.1.1__graphology-types@0.24.8/node_modules/@terraforge/core/dist/index.mjs
131742
131722
  import { appendFile, mkdir, readFile as readFile4, rename, rm, writeFile as writeFile2 } from "fs/promises";
131743
131723
  var import_proper_lockfile = __toESM(require_proper_lockfile(), 1);
131744
131724
  import { DynamoDB } from "@aws-sdk/client-dynamodb";
@@ -132011,7 +131991,7 @@ var unmarshall = (data, options) => {
132011
131991
  return convertToNative({ M: data }, options);
132012
131992
  };
132013
131993
 
132014
- // ../../node_modules/.pnpm/@terraforge+core@0.0.44_aws-crt@1.30.0_debug@4.4.3_supports-color@8.1.1__supports-color@8.1.1__graphology-types@0.24.8/node_modules/@terraforge/core/dist/index.mjs
131994
+ // ../../node_modules/.pnpm/@terraforge+core@0.0.43_aws-crt@1.30.0_debug@4.4.3_supports-color@8.1.1__supports-color@8.1.1__graphology-types@0.24.8/node_modules/@terraforge/core/dist/index.mjs
132015
131995
  import { createHash as createHash4, randomUUID as randomUUID2 } from "crypto";
132016
131996
  import { DeleteObjectCommand, GetObjectCommand, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
132017
131997
  var nodeMetaSymbol = Symbol("metadata");
@@ -132029,6 +132009,9 @@ var isDataSource = (obj) => {
132029
132009
  return isNode(obj) && obj[nodeMetaSymbol].tag === "data";
132030
132010
  };
132031
132011
  var Group = class Group2 {
132012
+ parent;
132013
+ type;
132014
+ name;
132032
132015
  children = [];
132033
132016
  constructor(parent, type, name) {
132034
132017
  this.parent = parent;
@@ -132074,6 +132057,7 @@ var Group = class Group2 {
132074
132057
  }
132075
132058
  };
132076
132059
  var Stack = class extends Group {
132060
+ app;
132077
132061
  dependencies = /* @__PURE__ */ new Set;
132078
132062
  constructor(app, name) {
132079
132063
  super(app, "stack", name);
@@ -132088,6 +132072,7 @@ var findParentStack = (group4) => {
132088
132072
  return findParentStack(group4.parent);
132089
132073
  };
132090
132074
  var App = class extends Group {
132075
+ name;
132091
132076
  constructor(name) {
132092
132077
  super(undefined, "app", name);
132093
132078
  this.name = name;
@@ -132101,6 +132086,8 @@ var PENDING = 1;
132101
132086
  var RESOLVED = 2;
132102
132087
  var REJECTED = 3;
132103
132088
  var Future = class Future2 {
132089
+ callback;
132090
+ volatile;
132104
132091
  listeners = /* @__PURE__ */ new Set;
132105
132092
  status = IDLE;
132106
132093
  data;
@@ -132122,28 +132109,28 @@ var Future = class Future2 {
132122
132109
  }
132123
132110
  }
132124
132111
  pipe(cb) {
132125
- return new Future2((resolve$1, reject) => {
132112
+ return new Future2((resolve, reject) => {
132126
132113
  this.then((value) => {
132127
- Promise.resolve(cb(value)).then((value$1) => {
132128
- resolve$1(value$1);
132114
+ Promise.resolve(cb(value)).then((value2) => {
132115
+ resolve(value2);
132129
132116
  }).catch(reject);
132130
132117
  }, reject);
132131
132118
  }, this.volatile);
132132
132119
  }
132133
- then(resolve$1, reject) {
132120
+ then(resolve, reject) {
132134
132121
  if (this.volatile)
132135
132122
  try {
132136
- Promise.resolve(this.callback(resolve$1, (error3) => reject?.(error3))).catch((error3) => reject?.(error3));
132123
+ Promise.resolve(this.callback(resolve, (error3) => reject?.(error3))).catch((error3) => reject?.(error3));
132137
132124
  } catch (error3) {
132138
132125
  reject?.(error3);
132139
132126
  }
132140
132127
  else if (this.status === RESOLVED)
132141
- resolve$1(this.data);
132128
+ resolve(this.data);
132142
132129
  else if (this.status === REJECTED)
132143
132130
  reject?.(this.error);
132144
132131
  else {
132145
132132
  this.listeners.add({
132146
- resolve: resolve$1,
132133
+ resolve,
132147
132134
  reject
132148
132135
  });
132149
132136
  if (this.status === IDLE) {
@@ -132152,7 +132139,7 @@ var Future = class Future2 {
132152
132139
  if (this.status === PENDING) {
132153
132140
  this.status = RESOLVED;
132154
132141
  this.data = data;
132155
- this.listeners.forEach(({ resolve: resolve$2 }) => resolve$2(data));
132142
+ this.listeners.forEach(({ resolve: resolve2 }) => resolve2(data));
132156
132143
  this.listeners.clear();
132157
132144
  }
132158
132145
  };
@@ -132160,7 +132147,7 @@ var Future = class Future2 {
132160
132147
  if (this.status === PENDING) {
132161
132148
  this.status = REJECTED;
132162
132149
  this.error = error3;
132163
- this.listeners.forEach(({ reject: reject$1 }) => reject$1?.(error3));
132150
+ this.listeners.forEach(({ reject: reject2 }) => reject2?.(error3));
132164
132151
  this.listeners.clear();
132165
132152
  }
132166
132153
  };
@@ -132175,13 +132162,13 @@ var Future = class Future2 {
132175
132162
  };
132176
132163
  var findInputDeps = (props) => {
132177
132164
  const deps = [];
132178
- const find = (props$1) => {
132179
- if (props$1 instanceof Output)
132180
- deps.push(...props$1.dependencies);
132181
- else if (Array.isArray(props$1))
132182
- props$1.map(find);
132183
- else if (props$1?.constructor === Object)
132184
- Object.values(props$1).map(find);
132165
+ const find = (props2) => {
132166
+ if (props2 instanceof Output)
132167
+ deps.push(...props2.dependencies);
132168
+ else if (Array.isArray(props2))
132169
+ props2.map(find);
132170
+ else if (props2?.constructor === Object)
132171
+ Object.values(props2).map(find);
132185
132172
  };
132186
132173
  find(props);
132187
132174
  return deps;
@@ -132204,7 +132191,7 @@ var resolveWithTimeout = async (promise) => {
132204
132191
  }
132205
132192
  };
132206
132193
  var resolveInputs = async (inputs, fallback) => {
132207
- const resolve$1 = async (value, path) => {
132194
+ const resolve = async (value, path) => {
132208
132195
  if (value instanceof Output || value instanceof Future || value instanceof Promise)
132209
132196
  try {
132210
132197
  return await resolveWithTimeout(value);
@@ -132214,30 +132201,31 @@ var resolveInputs = async (inputs, fallback) => {
132214
132201
  throw error3;
132215
132202
  }
132216
132203
  if (Array.isArray(value))
132217
- return Promise.all(value.map((item, index) => resolve$1(item, [...path, index])));
132204
+ return Promise.all(value.map((item, index) => resolve(item, [...path, index])));
132218
132205
  if (value?.constructor === Object) {
132219
- const entries$1 = Object.entries(value);
132220
- const resolved = await Promise.all(entries$1.map(([key, item]) => resolve$1(item, [...path, key])));
132206
+ const entries = Object.entries(value);
132207
+ const resolved = await Promise.all(entries.map(([key, item]) => resolve(item, [...path, key])));
132221
132208
  const result = {};
132222
- entries$1.forEach(([key], i3) => {
132209
+ entries.forEach(([key], i3) => {
132223
132210
  result[key] = resolved[i3];
132224
132211
  });
132225
132212
  return result;
132226
132213
  }
132227
132214
  return value;
132228
132215
  };
132229
- return resolve$1(inputs, []);
132216
+ return resolve(inputs, []);
132230
132217
  };
132231
132218
  var Output = class Output2 extends Future {
132219
+ dependencies;
132232
132220
  constructor(dependencies, callback, volatile = false) {
132233
132221
  super(callback, volatile);
132234
132222
  this.dependencies = dependencies;
132235
132223
  }
132236
132224
  pipe(cb) {
132237
- return new Output2(this.dependencies, (resolve$1, reject) => {
132225
+ return new Output2(this.dependencies, (resolve, reject) => {
132238
132226
  this.then((value) => {
132239
- Promise.resolve(cb(value)).then((value$1) => {
132240
- resolve$1(value$1);
132227
+ Promise.resolve(cb(value)).then((value2) => {
132228
+ resolve(value2);
132241
132229
  }).catch(reject);
132242
132230
  }, reject);
132243
132231
  }, this.volatile);
@@ -132253,9 +132241,9 @@ var hasVolatileInput = (props) => {
132253
132241
  return false;
132254
132242
  };
132255
132243
  var combine = (...inputs) => {
132256
- return new Output(new Set(findInputDeps(inputs)), (resolve$1, reject) => {
132244
+ return new Output(new Set(findInputDeps(inputs)), (resolve, reject) => {
132257
132245
  Promise.all(inputs).then(resolveInputs).then((result) => {
132258
- resolve$1(result);
132246
+ resolve(result);
132259
132247
  }, reject);
132260
132248
  }, hasVolatileInput(inputs));
132261
132249
  };
@@ -132279,7 +132267,7 @@ var createUrn = (tag, type, name, parentUrn) => {
132279
132267
  var createMeta = (tag, provider, parent, type, logicalId, input, config) => {
132280
132268
  const urn = createUrn(tag, type, logicalId, parent.urn);
132281
132269
  const stack = findParentStack(parent);
132282
- let output$1;
132270
+ let output;
132283
132271
  let resolved = false;
132284
132272
  return {
132285
132273
  tag,
@@ -132304,16 +132292,16 @@ var createMeta = (tag, provider, parent, type, logicalId, input, config) => {
132304
132292
  return dependencies;
132305
132293
  },
132306
132294
  resolve(data) {
132307
- output$1 = data;
132295
+ output = data;
132308
132296
  resolved = true;
132309
132297
  },
132310
132298
  output(cb) {
132311
- return new Output(new Set([this]), (resolve$1, reject) => {
132299
+ return new Output(/* @__PURE__ */ new Set([this]), (resolve2, reject) => {
132312
132300
  if (!resolved) {
132313
132301
  reject(/* @__PURE__ */ new Error(`Unresolved output for ${tag}: ${urn}`));
132314
132302
  return;
132315
132303
  }
132316
- resolve$1(cb(output$1));
132304
+ resolve2(cb(output));
132317
132305
  }, true);
132318
132306
  }
132319
132307
  };
@@ -132333,6 +132321,7 @@ var createDebugger = (group4) => {
132333
132321
  };
132334
132322
  };
132335
132323
  var AlreadyLockedError = class extends Error {
132324
+ urn;
132336
132325
  constructor(urn) {
132337
132326
  super(`Already locked: ${urn}`);
132338
132327
  this.urn = urn;
@@ -132538,6 +132527,9 @@ var allowsDependentReplace = (replaceOnChanges, dependencyPaths) => {
132538
132527
  return false;
132539
132528
  };
132540
132529
  var ResourceError = class ResourceError2 extends Error {
132530
+ urn;
132531
+ type;
132532
+ operation;
132541
132533
  static wrap(urn, type, operation, error3) {
132542
132534
  if (error3 instanceof Error)
132543
132535
  return new ResourceError2(urn, type, operation, error3.message);
@@ -132551,6 +132543,8 @@ var ResourceError = class ResourceError2 extends Error {
132551
132543
  }
132552
132544
  };
132553
132545
  var AppError = class extends Error {
132546
+ app;
132547
+ issues;
132554
132548
  constructor(app, issues, message4) {
132555
132549
  super(message4);
132556
132550
  this.app = app;
@@ -132579,8 +132573,8 @@ var v1 = (oldAppState) => {
132579
132573
  const stacks = {};
132580
132574
  for (const [urn, stack] of entries(oldAppState.stacks)) {
132581
132575
  const nodes2 = {};
132582
- for (const [urn$1, resource] of entries(stack.resources))
132583
- nodes2[urn$1] = {
132576
+ for (const [urn2, resource] of entries(stack.resources))
132577
+ nodes2[urn2] = {
132584
132578
  ...resource,
132585
132579
  tag: "resource"
132586
132580
  };
@@ -132821,8 +132815,6 @@ var importResource = async (resource, input, opt) => {
132821
132815
  }
132822
132816
  });
132823
132817
  } catch (error3) {
132824
- if (error3 instanceof ResourceNotFound)
132825
- throw new ResourceNotFound(`The "${meta.type}" resource import "${meta.config?.import}" doesn't exist. (${meta.urn})`);
132826
132818
  throw ResourceError.wrap(meta.urn, meta.type, "import", error3);
132827
132819
  }
132828
132820
  return {
@@ -133004,11 +132996,11 @@ var deployApp = async (app, opt) => {
133004
132996
  });
133005
132997
  const isFilteredIn = !opt.filters?.length || opt.filters.includes(stackState.name);
133006
132998
  if (!found && isFilteredIn)
133007
- for (const [urn$1, nodeState] of entries(stackState.nodes))
133008
- graph.add(urn$1, dependentsOn(allNodes, urn$1), async () => {
132999
+ for (const [urn2, nodeState] of entries(stackState.nodes))
133000
+ graph.add(urn2, dependentsOn(allNodes, urn2), async () => {
133009
133001
  if (nodeState.tag === "resource")
133010
- await queue(() => deleteResource(appState.idempotentToken, urn$1, nodeState, opt));
133011
- delete stackState.nodes[urn$1];
133002
+ await queue(() => deleteResource(appState.idempotentToken, urn2, nodeState, opt));
133003
+ delete stackState.nodes[urn2];
133012
133004
  });
133013
133005
  }
133014
133006
  for (const stack of stacks) {
@@ -133037,16 +133029,16 @@ var deployApp = async (app, opt) => {
133037
133029
  throw ResourceError.wrap(meta.urn, meta.type, "resolve", error3);
133038
133030
  }
133039
133031
  if (isDataSource(node)) {
133040
- const meta$1 = getMeta(node);
133032
+ const meta2 = getMeta(node);
133041
133033
  if (!nodeState) {
133042
- const dataSourceState = await getDataSource(meta$1, input, opt);
133043
- nodeState = stackState.nodes[meta$1.urn] = {
133034
+ const dataSourceState = await getDataSource(meta2, input, opt);
133035
+ nodeState = stackState.nodes[meta2.urn] = {
133044
133036
  ...dataSourceState,
133045
133037
  drifted: undefined,
133046
133038
  ...partialNewResourceState
133047
133039
  };
133048
133040
  } else if (!compareState(nodeState.input, input) || nodeState.drifted) {
133049
- const dataSourceState = await getDataSource(meta$1, input, opt);
133041
+ const dataSourceState = await getDataSource(meta2, input, opt);
133050
133042
  Object.assign(nodeState, {
133051
133043
  ...dataSourceState,
133052
133044
  drifted: undefined,
@@ -133056,87 +133048,78 @@ var deployApp = async (app, opt) => {
133056
133048
  Object.assign(nodeState, partialNewResourceState);
133057
133049
  }
133058
133050
  if (isResource(node)) {
133059
- const meta$1 = getMeta(node);
133060
- if (!nodeState) {
133061
- if (meta$1.config?.import) {
133051
+ const meta2 = getMeta(node);
133052
+ if (!nodeState)
133053
+ if (meta2.config?.import) {
133062
133054
  const importedState = await importResource(node, input, opt);
133063
- if (importedState) {
133064
- const newResourceState = await updateResource(node, appState.idempotentToken, importedState.input, importedState.output, input, opt);
133065
- nodeState = stackState.nodes[meta$1.urn] = {
133066
- ...importedState,
133067
- ...newResourceState,
133068
- ...partialNewResourceState
133069
- };
133070
- }
133071
- }
133072
- if (!nodeState) {
133055
+ const newResourceState = await updateResource(node, appState.idempotentToken, importedState.input, importedState.output, input, opt);
133056
+ nodeState = stackState.nodes[meta2.urn] = {
133057
+ ...importedState,
133058
+ ...newResourceState,
133059
+ ...partialNewResourceState
133060
+ };
133061
+ } else {
133073
133062
  const newResourceState = await createResource(node, appState.idempotentToken, input, opt);
133074
- nodeState = stackState.nodes[meta$1.urn] = {
133063
+ nodeState = stackState.nodes[meta2.urn] = {
133075
133064
  ...newResourceState,
133076
133065
  ...partialNewResourceState
133077
133066
  };
133078
133067
  }
133079
- } else {
133068
+ else {
133080
133069
  const inputChanged = !compareState(nodeState.input, input);
133081
133070
  const hasDrift = !!nodeState.drifted;
133082
133071
  if (!inputChanged && !hasDrift)
133083
133072
  Object.assign(nodeState, partialNewResourceState);
133084
133073
  else {
133085
133074
  let newResourceState;
133086
- const ignoreReplace = forcedUpdateDependents.has(meta$1.urn);
133087
- if (!ignoreReplace && requiresReplacement(nodeState.input, input, meta$1.config?.replaceOnChanges ?? []))
133088
- if (meta$1.config?.createBeforeReplace) {
133089
- meta$1.resolve(input);
133075
+ const ignoreReplace = forcedUpdateDependents.has(meta2.urn);
133076
+ if (!ignoreReplace && requiresReplacement(nodeState.input, input, meta2.config?.replaceOnChanges ?? []))
133077
+ if (meta2.config?.createBeforeReplace) {
133078
+ meta2.resolve(input);
133090
133079
  try {
133091
133080
  for (const [dependentUrn, dependentNode] of nodeByUrn.entries()) {
133092
133081
  if (!isResource(dependentNode))
133093
133082
  continue;
133094
133083
  const dependentMeta = getMeta(dependentNode);
133095
- if (!dependentMeta.dependencies.has(meta$1.urn))
133084
+ if (!dependentMeta.dependencies.has(meta2.urn))
133096
133085
  continue;
133097
133086
  const dependentStackState = stackStates.get(dependentMeta.stack.urn);
133098
133087
  const dependentState = dependentStackState?.nodes[dependentUrn];
133099
133088
  if (!dependentStackState || !dependentState)
133100
133089
  continue;
133101
- const dependencyPaths = findDependencyPaths(dependentMeta.input, meta$1.urn);
133090
+ const dependencyPaths = findDependencyPaths(dependentMeta.input, meta2.urn);
133102
133091
  if (dependencyPaths.length === 0)
133103
133092
  continue;
133104
133093
  const dependentProvider = findProvider(opt.providers, dependentMeta.provider);
133105
133094
  if (dependentProvider.planResourceChange) {
133106
133095
  const dependentProposedInput = await resolveInputs(dependentMeta.input, (path) => getAtPath(dependentState.input, path));
133107
- let dependentRequiresReplacement;
133108
- try {
133109
- dependentRequiresReplacement = !!(await dependentProvider.planResourceChange({
133110
- type: dependentMeta.type,
133111
- priorState: dependentState.output,
133112
- proposedState: dependentProposedInput
133113
- })).requiresReplacement;
133114
- } catch {
133115
- dependentRequiresReplacement = true;
133116
- }
133117
- if (dependentRequiresReplacement) {
133096
+ if ((await dependentProvider.planResourceChange({
133097
+ type: dependentMeta.type,
133098
+ priorState: dependentState.output,
133099
+ proposedState: dependentProposedInput
133100
+ })).requiresReplacement) {
133118
133101
  if (!allowsDependentReplace(dependentMeta.config?.replaceOnChanges, dependencyPaths))
133119
- throw ResourceError.wrap(dependentMeta.urn, dependentMeta.type, "update", /* @__PURE__ */ new Error(`Replacing ${meta$1.urn} requires ${dependentMeta.urn} to set replaceOnChanges for its dependency fields.`));
133102
+ throw ResourceError.wrap(dependentMeta.urn, dependentMeta.type, "update", /* @__PURE__ */ new Error(`Replacing ${meta2.urn} requires ${dependentMeta.urn} to set replaceOnChanges for its dependency fields.`));
133120
133103
  }
133121
133104
  }
133122
133105
  }
133123
133106
  } finally {
133124
- meta$1.resolve(nodeState.output);
133107
+ meta2.resolve(nodeState.output);
133125
133108
  }
133126
133109
  const priorState = { ...nodeState };
133127
133110
  newResourceState = await createResource(node, appState.idempotentToken, input, opt);
133128
133111
  if (newResourceState.output)
133129
- meta$1.resolve(newResourceState.output);
133130
- if (!meta$1.config?.retainOnDelete) {
133112
+ meta2.resolve(newResourceState.output);
133113
+ if (!meta2.config?.retainOnDelete) {
133131
133114
  appState.pendingDeletes ??= {};
133132
- appState.pendingDeletes[meta$1.urn] = priorState;
133115
+ appState.pendingDeletes[meta2.urn] = priorState;
133133
133116
  }
133134
133117
  } else {
133135
133118
  for (const [dependentUrn, dependentNode] of nodeByUrn.entries()) {
133136
133119
  if (!isResource(dependentNode))
133137
133120
  continue;
133138
133121
  const dependentMeta = getMeta(dependentNode);
133139
- if (!dependentMeta.dependencies.has(meta$1.urn))
133122
+ if (!dependentMeta.dependencies.has(meta2.urn))
133140
133123
  continue;
133141
133124
  if (plannedDependents.has(dependentUrn))
133142
133125
  continue;
@@ -133144,10 +133127,10 @@ var deployApp = async (app, opt) => {
133144
133127
  const dependentState = dependentStackState?.nodes[dependentUrn];
133145
133128
  if (!dependentStackState || !dependentState)
133146
133129
  continue;
133147
- const dependencyPaths = findDependencyPaths(dependentMeta.input, meta$1.urn);
133130
+ const dependencyPaths = findDependencyPaths(dependentMeta.input, meta2.urn);
133148
133131
  if (dependencyPaths.length === 0)
133149
133132
  continue;
133150
- const detachedInput = stripDependencyInputs(dependentState.input, dependentMeta.input, meta$1.urn);
133133
+ const detachedInput = stripDependencyInputs(dependentState.input, dependentMeta.input, meta2.urn);
133151
133134
  if (compareState(dependentState.input, detachedInput))
133152
133135
  continue;
133153
133136
  plannedDependents.add(dependentUrn);
@@ -133165,7 +133148,7 @@ var deployApp = async (app, opt) => {
133165
133148
  }
133166
133149
  if (dependentRequiresReplacement) {
133167
133150
  if (!allowsDependentReplace(dependentMeta.config?.replaceOnChanges, dependencyPaths))
133168
- throw ResourceError.wrap(dependentMeta.urn, dependentMeta.type, "update", /* @__PURE__ */ new Error(`Replacing ${meta$1.urn} requires ${dependentMeta.urn} to set replaceOnChanges for its dependency fields.`));
133151
+ throw ResourceError.wrap(dependentMeta.urn, dependentMeta.type, "update", /* @__PURE__ */ new Error(`Replacing ${meta2.urn} requires ${dependentMeta.urn} to set replaceOnChanges for its dependency fields.`));
133169
133152
  await deleteResource(appState.idempotentToken, dependentUrn, dependentState, opt);
133170
133153
  delete dependentStackState.nodes[dependentUrn];
133171
133154
  } else {
@@ -133179,12 +133162,12 @@ var deployApp = async (app, opt) => {
133179
133162
  }
133180
133163
  newResourceState = await replaceResource(node, appState.idempotentToken, nodeState.input, nodeState.output, input, opt);
133181
133164
  if (newResourceState.output)
133182
- meta$1.resolve(newResourceState.output);
133165
+ meta2.resolve(newResourceState.output);
133183
133166
  }
133184
133167
  else {
133185
133168
  newResourceState = await updateResource(node, appState.idempotentToken, nodeState.input, nodeState.output, input, opt);
133186
133169
  if (ignoreReplace)
133187
- forcedUpdateDependents.delete(meta$1.urn);
133170
+ forcedUpdateDependents.delete(meta2.urn);
133188
133171
  }
133189
133172
  Object.assign(nodeState, {
133190
133173
  input,
@@ -133433,6 +133416,7 @@ var status = async (app, opt) => {
133433
133416
  return stacks;
133434
133417
  };
133435
133418
  var WorkSpace = class {
133419
+ props;
133436
133420
  constructor(props) {
133437
133421
  this.props = props;
133438
133422
  }
@@ -133527,6 +133511,7 @@ var isConditionalCheckFailed = (error3) => {
133527
133511
  return error3 instanceof Error && error3.name === "ConditionalCheckFailedException";
133528
133512
  };
133529
133513
  var DynamoLockBackend = class {
133514
+ props;
133530
133515
  client;
133531
133516
  constructor(props) {
133532
133517
  this.props = props;
@@ -133610,6 +133595,7 @@ var DynamoLockBackend = class {
133610
133595
  }
133611
133596
  };
133612
133597
  var S3StateBackend = class {
133598
+ props;
133613
133599
  client;
133614
133600
  constructor(props) {
133615
133601
  this.props = props;
@@ -133647,16 +133633,16 @@ var S3StateBackend = class {
133647
133633
  }
133648
133634
  };
133649
133635
  var file = (path, encoding = "utf8") => {
133650
- return new Future(async (resolve$1, reject) => {
133636
+ return new Future(async (resolve2, reject) => {
133651
133637
  try {
133652
- resolve$1(await readFile4(path, { encoding }));
133638
+ resolve2(await readFile4(path, { encoding }));
133653
133639
  } catch (error3) {
133654
133640
  reject(error3);
133655
133641
  }
133656
133642
  });
133657
133643
  };
133658
133644
  var hash = (path, algo = "sha256") => {
133659
- return file(path).pipe((file$1) => createHash4(algo).update(file$1).digest("hex"));
133645
+ return file(path).pipe((file2) => createHash4(algo).update(file2).digest("hex"));
133660
133646
  };
133661
133647
  globalThis.$resolve = resolve;
133662
133648
  globalThis.$combine = combine;
@@ -133667,7 +133653,7 @@ var createCustomResourceClass = (providerId, resourceType) => {
133667
133653
  return new Proxy(class {
133668
133654
  }, { construct(_3, [parent, id, input, config]) {
133669
133655
  const meta = createMeta("resource", `custom:${providerId}`, parent, resourceType, id, input, config);
133670
- const node = new Proxy({}, { get(_$1, key) {
133656
+ const node = new Proxy({}, { get(_4, key) {
133671
133657
  if (key === nodeMetaSymbol)
133672
133658
  return meta;
133673
133659
  if (key === "urn")
@@ -133682,67 +133668,68 @@ var createCustomResourceClass = (providerId, resourceType) => {
133682
133668
  };
133683
133669
  var createCustomProvider = (providerId, resourceProviders) => {
133684
133670
  const version2 = 1;
133685
- const hasRefreshResource = Object.values(resourceProviders).some((provider$1) => !!provider$1.refreshResource);
133671
+ const hasRefreshResource = Object.values(resourceProviders).some((provider2) => !!provider2.refreshResource);
133686
133672
  const getProvider = (type) => {
133687
- const provider$1 = resourceProviders[type];
133688
- if (!provider$1)
133673
+ const provider2 = resourceProviders[type];
133674
+ if (!provider2)
133689
133675
  throw new Error(`The "${providerId}" provider doesn't support the "${type}" resource type.`);
133690
- return provider$1;
133676
+ return provider2;
133691
133677
  };
133692
133678
  const provider = {
133693
133679
  ownResource(id) {
133694
133680
  return id === `custom:${providerId}`;
133695
133681
  },
133696
133682
  async getResource({ type, ...props }) {
133697
- const provider$1 = getProvider(type);
133698
- if (!provider$1.getResource)
133683
+ const provider2 = getProvider(type);
133684
+ if (!provider2.getResource)
133699
133685
  return {
133700
133686
  version: version2,
133701
133687
  state: props.state
133702
133688
  };
133703
133689
  return {
133704
133690
  version: version2,
133705
- state: await provider$1.getResource(props)
133691
+ state: await provider2.getResource(props)
133706
133692
  };
133707
133693
  },
133708
133694
  async createResource({ type, ...props }) {
133709
- const provider$1 = getProvider(type);
133710
- if (!provider$1.createResource)
133695
+ const provider2 = getProvider(type);
133696
+ if (!provider2.createResource)
133711
133697
  return {
133712
133698
  version: version2,
133713
133699
  state: props.state
133714
133700
  };
133715
133701
  return {
133716
133702
  version: version2,
133717
- state: await provider$1.createResource(props)
133703
+ state: await provider2.createResource(props)
133718
133704
  };
133719
133705
  },
133720
133706
  async updateResource({ type, ...props }) {
133721
- const provider$1 = getProvider(type);
133722
- if (!provider$1.updateResource)
133707
+ const provider2 = getProvider(type);
133708
+ if (!provider2.updateResource)
133723
133709
  return {
133724
133710
  version: version2,
133725
133711
  state: props.proposedState
133726
133712
  };
133727
133713
  return {
133728
133714
  version: version2,
133729
- state: await provider$1.updateResource(props)
133715
+ state: await provider2.updateResource(props)
133730
133716
  };
133731
133717
  },
133732
133718
  async deleteResource({ type, ...props }) {
133733
133719
  await getProvider(type).deleteResource?.(props);
133734
133720
  },
133735
133721
  async planResourceChange({ type, ...props }) {
133736
- const provider$1 = getProvider(type);
133737
- if (!provider$1.planResourceChange)
133722
+ const provider2 = getProvider(type);
133723
+ if (!provider2.planResourceChange)
133738
133724
  return {
133739
133725
  version: version2,
133740
133726
  state: props.proposedState,
133741
133727
  requiresReplacement: false
133742
133728
  };
133729
+ const result = await provider2.planResourceChange(props);
133743
133730
  return {
133744
133731
  version: version2,
133745
- ...await provider$1.planResourceChange(props)
133732
+ ...result
133746
133733
  };
133747
133734
  },
133748
133735
  async getData({ type, ...props }) {
@@ -141097,12 +141084,14 @@ if (!nativeAccelerationDisabled) {
141097
141084
  try {
141098
141085
  if (true)
141099
141086
  extractor = require_msgpackr_extract();
141087
+ else
141088
+ ;
141100
141089
  if (extractor)
141101
141090
  setExtractor(extractor.extractStrings);
141102
141091
  } catch (error3) {}
141103
141092
  }
141104
141093
 
141105
- // ../../node_modules/.pnpm/@terraforge+terraform@0.0.35_@terraforge+core@0.0.44_aws-crt@1.30.0_debug@4.4.3_support_4501f5c353e25a801cf638e931a8dd2d/node_modules/@terraforge/terraform/dist/index.mjs
141094
+ // ../../node_modules/.pnpm/@terraforge+terraform@0.0.35_@terraforge+core@0.0.43_aws-crt@1.30.0_debug@4.4.3_support_5cbec650153056d375307c2d151398c3/node_modules/@terraforge/terraform/dist/index.mjs
141106
141095
  var import_grpc_js = __toESM(require_src4(), 1);
141107
141096
  var import_proto_loader = __toESM(require_src3(), 1);
141108
141097
  var import_jszip = __toESM(require_lib3(), 1);
@@ -143613,7 +143602,7 @@ var createTerraformProxy = (props) => {
143613
143602
  });
143614
143603
  };
143615
143604
 
143616
- // ../../node_modules/.pnpm/@terraforge+aws@6.53.0_@terraforge+core@0.0.44_aws-crt@1.30.0_debug@4.4.3_supports-colo_7835ee9c943a9b106f7a0c962824b2e8/node_modules/@terraforge/aws/dist/index.js
143605
+ // ../../node_modules/.pnpm/@terraforge+aws@6.53.0_@terraforge+core@0.0.43_aws-crt@1.30.0_debug@4.4.3_supports-colo_8ae6ada9f1b5b5808a0d42265f99939f/node_modules/@terraforge/aws/dist/index.js
143617
143606
  var aws2 = createTerraformProxy({
143618
143607
  namespace: "aws",
143619
143608
  provider: { org: "hashicorp", type: "aws", version: "6.53.0" }
@@ -164562,7 +164551,8 @@ var startTest = async (props) => {
164562
164551
  location: stack ? { line: stack.line, column: stack.column } : test.location,
164563
164552
  message: error3.message,
164564
164553
  diff: error3.diff,
164565
- type: error3.name
164554
+ type: error3.name,
164555
+ stack: error3.stack
164566
164556
  });
164567
164557
  }
164568
164558
  }
@@ -164571,7 +164561,8 @@ var startTest = async (props) => {
164571
164561
  errors3.push({
164572
164562
  type: error3.name,
164573
164563
  message: error3.message,
164574
- location: stack ? { line: stack.line, column: stack.column } : undefined
164564
+ location: stack ? { line: stack.line, column: stack.column } : undefined,
164565
+ stack: error3.stack
164575
164566
  });
164576
164567
  }
164577
164568
  }
@@ -164635,6 +164626,10 @@ var formatFileName = (test, error3) => {
164635
164626
  return name.join("");
164636
164627
  };
164637
164628
  var logTestError = (index, event, test, error3) => {
164629
+ if (error3.stack) {
164630
+ debug(`Test error in ${test.file} \u203A ${test.name}: ${error3.message}
164631
+ ${error3.stack}`);
164632
+ }
164638
164633
  const [message4, ...comment] = error3.message.split("//");
164639
164634
  const errorMessage = [
164640
164635
  color2.error.bold(error3.type + ":"),
@@ -164696,6 +164691,10 @@ var runTest = async (stack, dir, filters, workspace, opts) => {
164696
164691
  env: opts.env
164697
164692
  });
164698
164693
  if (result2.errors.length > 0) {
164694
+ for (const error3 of result2.errors) {
164695
+ debug(`Module error in ${stack} tests: ${error3.message}
164696
+ ${error3.stack ?? "(no stack captured)"}`);
164697
+ }
164699
164698
  throw result2.errors.map((error3) => new ExpectedError(error3.type && error3.type !== "Error" ? `${error3.type}: ${error3.message}` : error3.message));
164700
164699
  }
164701
164700
  ctx.updateSuccessMessage(formatResult({
@@ -167226,8 +167225,10 @@ var createBundleWorker = (props) => {
167226
167225
  }
167227
167226
  }
167228
167227
  }
167229
- process[stream2].write((route ? `[${route}] ` : "") + text2 + `
167228
+ if (!props.quiet?.()) {
167229
+ process[stream2].write((route ? `[${route}] ` : "") + text2 + `
167230
167230
  `);
167231
+ }
167231
167232
  const clean = stripAnsi2(text2);
167232
167233
  if (clean.trim() !== "") {
167233
167234
  props.onOutput?.(clean, stream2, route);
@@ -167404,6 +167405,13 @@ var dashboardHtml = `<!doctype html>
167404
167405
  cursor: pointer;
167405
167406
  }
167406
167407
  nav h1 span { color: var(--muted); font-weight: normal; }
167408
+ nav h3 {
167409
+ font-size: 10px;
167410
+ text-transform: uppercase;
167411
+ letter-spacing: 1px;
167412
+ color: var(--muted);
167413
+ margin: 14px 8px 4px;
167414
+ }
167407
167415
  nav button {
167408
167416
  display: flex;
167409
167417
  align-items: center;
@@ -167625,6 +167633,16 @@ const GROUPS = [
167625
167633
  ['route', 'Routes'],
167626
167634
  ]
167627
167635
 
167636
+ // The nav renders the features in scannable sections - a section only
167637
+ // shows when the app declares at least one of its resources.
167638
+ const SECTIONS = [
167639
+ ['Web', ['site', 'rpc', 'rest', 'route', 'image', 'icon']],
167640
+ ['Compute', ['function', 'cron', 'task', 'instance']],
167641
+ ['Messaging', ['queue', 'topic', 'subscriber', 'pubsub']],
167642
+ ['Storage', ['table', 'cache', 'search', 'store']],
167643
+ ['App', ['config', 'auth', 'email', 'worker']],
167644
+ ]
167645
+
167628
167646
  const svg = inner =>
167629
167647
  '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' + inner + '</svg>'
167630
167648
 
@@ -167650,6 +167668,8 @@ const ICONS = {
167650
167668
  route: svg('<circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>'),
167651
167669
  site: svg('<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>'),
167652
167670
  seed: svg('<path d="M12 22V8"/><path d="M12 8C12 5 9 2 5 2c0 4 3 6 7 6z"/><path d="M12 12c0-3 3-6 7-6 0 4-3 6-7 6z"/>'),
167671
+ auth: svg('<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/>'),
167672
+ worker: svg('<polyline points="4 17 10 11 4 5"/><line x1="12" y1="19" x2="20" y2="19"/>'),
167653
167673
  }
167654
167674
 
167655
167675
  const icon = kind => {
@@ -168627,19 +168647,37 @@ const render = () => {
168627
168647
  nav.innerHTML = '<h1>awsless <span>dev</span></h1>'
168628
168648
  nav.querySelector('h1').onclick = showHome
168629
168649
 
168630
- for (const [kind, title] of GROUPS) {
168650
+ const navButton = kind => {
168631
168651
  const count = state.resources.filter(r => r.kind === kind).length
168632
- if (count === 0) continue
168652
+ if (count === 0) return null
168633
168653
 
168634
168654
  // The email outbox is a single feed, so a count of registered
168635
168655
  // resources would only confuse.
168636
168656
  const button = $('button', { className: view.kind === kind ? 'active' : '' }, [
168637
168657
  icon(kind),
168638
- title,
168658
+ groupTitle(kind),
168639
168659
  kind === 'email' || kind === 'worker' ? '' : $('span', { className: 'count' }, String(count)),
168640
168660
  ])
168641
168661
  button.onclick = () => selectKind(kind)
168642
- nav.append(button)
168662
+ return button
168663
+ }
168664
+
168665
+ const sectioned = new Set(SECTIONS.flatMap(([, kinds]) => kinds))
168666
+
168667
+ for (const [label, kinds] of SECTIONS) {
168668
+ const buttons = kinds.map(navButton).filter(Boolean)
168669
+ if (buttons.length === 0) continue
168670
+
168671
+ nav.append($('h3', {}, label), ...buttons)
168672
+ }
168673
+
168674
+ // A kind without a section still shows, so new features never
168675
+ // silently vanish from the nav.
168676
+ for (const [kind] of GROUPS) {
168677
+ if (sectioned.has(kind)) continue
168678
+
168679
+ const button = navButton(kind)
168680
+ if (button) nav.append(button)
168643
168681
  }
168644
168682
 
168645
168683
  if (state.seeds) {
@@ -169387,10 +169425,12 @@ var startDev = async (props) => {
169387
169425
  const emitWorkerLine = (line, error3 = false, route) => {
169388
169426
  dev.events.emit("worker", { date: Date.now(), line, error: error3, route });
169389
169427
  };
169428
+ let seeding = false;
169390
169429
  const worker = createBundleWorker({
169391
169430
  buildDir,
169392
169431
  env: env4,
169393
169432
  functionName: bundleName,
169433
+ quiet: () => seeding,
169394
169434
  onOutput: (line, stream2, route) => emitWorkerLine(line, stream2 === "stderr", route)
169395
169435
  });
169396
169436
  dev.resources.push({
@@ -169467,10 +169507,18 @@ var startDev = async (props) => {
169467
169507
  });
169468
169508
  const seeder = createSeedRunner({ seed: appConfig.seed, env: env4 });
169469
169509
  const resetData = createDataReset({ pool: props.pool, stackConfigs });
169510
+ const runSeed = async () => {
169511
+ seeding = true;
169512
+ try {
169513
+ await seeder.run();
169514
+ } finally {
169515
+ seeding = false;
169516
+ }
169517
+ };
169470
169518
  if (firstBoot && seeder.enabled && !dirty) {
169471
169519
  try {
169472
169520
  await phase({ start: "Seeding the local data...", done: "Seeded the local data" }, async () => {
169473
- await seeder.run();
169521
+ await runSeed();
169474
169522
  });
169475
169523
  } catch (error3) {
169476
169524
  log(`Seeding failed: ${error3 instanceof Error ? error3.message : String(error3)}`);
@@ -169494,7 +169542,7 @@ var startDev = async (props) => {
169494
169542
  const dashboard = createDashboardServer({
169495
169543
  runSeeds: seeder.enabled ? async () => {
169496
169544
  await resetData();
169497
- await seeder.run();
169545
+ await runSeed();
169498
169546
  } : undefined,
169499
169547
  app: appConfig.name,
169500
169548
  region: appConfig.region,
@@ -176909,7 +176957,7 @@ ${job.error.stack.split(`
176909
176957
  stream2.shift();
176910
176958
  } else if (stream2.length > 0) {
176911
176959
  this._BOMseen = true;
176912
- }
176960
+ } else {}
176913
176961
  }
176914
176962
  return codePointsToString(stream2);
176915
176963
  }