@madewithremy/admin 0.1.47 → 0.1.49

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/prod.js CHANGED
@@ -9015,10 +9015,10 @@ Notes:
9015
9015
  Custom domains \u2014 two independent directions:
9016
9016
  'domains' govern the From address. 'add' returns
9017
9017
  dnsInstructions.records: the DNS records to publish, each
9018
- marked required or not (on the cloud, three DKIM CNAMEs
9019
- and a recommended SPF TXT) \u2014 hand these to the user to
9020
- create at their DNS host, then 'verify <domain>' to
9021
- re-check now.
9018
+ marked required or not (on the cloud, three DKIM CNAMEs,
9019
+ then a recommended MX and SPF TXT for the bounce domain,
9020
+ bounces.<domain>) \u2014 hand these to the user to create at
9021
+ their DNS host, then 'verify <domain>' to re-check now.
9022
9022
  'list' also returns effectiveSender: what the app currently
9023
9023
  sends as, and which tier that address comes from.
9024
9024
  'inbound-domains' receive mail at the user's own domain via one MX record
@@ -9031,6 +9031,12 @@ Custom domains \u2014 two independent directions:
9031
9031
  verificationErrors; sending verification expires unstarted after ~72h \u2014 fix
9032
9032
  the records and 'verify' again).
9033
9033
 
9034
+ returnPathStatus per sending domain: the bounce domain, which puts bounces on
9035
+ the user's own domain so SPF matches it. pending (its MX not found yet),
9036
+ verified, failed (not found within ~72h \u2014 publish the records and 'verify'
9037
+ again, which starts it over), or null where the provider has none. Never part
9038
+ of uiStatus: a domain sends without it.
9039
+
9034
9040
  Examples:
9035
9041
  remy-admin email status
9036
9042
  remy-admin email list --status bounced,blocked --limit 50
@@ -9103,6 +9109,63 @@ Examples:
9103
9109
  remy-admin cron list --runs 50
9104
9110
  remy-admin cron run dailyDigest`;
9105
9111
 
9112
+ // src/commands/feedback.ts
9113
+ import fs7 from "fs";
9114
+
9115
+ // src/ops/feedback.ts
9116
+ function draft(ctx, message) {
9117
+ return call(
9118
+ ctx,
9119
+ "POST",
9120
+ `/_internal/v2/apps/${ctx.appId}/feedback-draft`,
9121
+ { message }
9122
+ );
9123
+ }
9124
+
9125
+ // src/commands/feedback.ts
9126
+ var feedbackSpecs = {
9127
+ "feedback draft": {
9128
+ usage: "Usage: remy-admin feedback draft <message> (or --message - to read stdin)",
9129
+ positionals: [{ name: "message" }],
9130
+ flags: { message: { type: "string" } },
9131
+ requireAnyOf: {
9132
+ flags: ["message"],
9133
+ positionals: ["message"],
9134
+ message: "A message is required."
9135
+ }
9136
+ }
9137
+ };
9138
+ async function feedbackDraft(ctx, a) {
9139
+ const flag = a.str("message");
9140
+ const message = flag === "-" ? fs7.readFileSync(0, "utf-8") : flag ?? a.req("message");
9141
+ out(await draft(ctx, message));
9142
+ }
9143
+ var feedbackHandlers = {
9144
+ "feedback draft": feedbackDraft
9145
+ };
9146
+ var feedbackHelp = `remy-admin feedback \u2014 Report a problem with Remy itself to the Remy team.
9147
+
9148
+ Subcommands:
9149
+ draft Open Send Feedback in the user's editor with your message filled in
9150
+
9151
+ Usage:
9152
+ remy-admin feedback draft <message>
9153
+ remy-admin feedback draft --message - Read the message from stdin
9154
+
9155
+ Notes:
9156
+ - Nothing is sent by this command. The user sees Send Feedback open in their
9157
+ editor with your message in it, can edit it, and decides whether to send.
9158
+ - What goes with a sent report: your conversation, this sandbox's logs and the
9159
+ editor's state. The message itself is what the team reads first.
9160
+ - Only the user's own editors on this app open it, and only ones open now.
9161
+ Returns { status: "sent_to_editor" }.
9162
+ - Errors: feedback_not_configured (this deployment doesn't take feedback),
9163
+ missing_message, message_too_long (over 20,000 characters).
9164
+
9165
+ Examples:
9166
+ remy-admin feedback draft "Every save restarted the dev server twice, so previews lagged a full reload behind."
9167
+ cat note.md | remy-admin feedback draft --message -`;
9168
+
9106
9169
  // src/ops/infra.ts
9107
9170
  var DEFAULT_WAIT_TIMEOUT_MS4 = 10 * 60 * 1e3;
9108
9171
  var POLL_MS5 = 3e3;
@@ -9810,6 +9873,7 @@ var SPECS = {
9810
9873
  ...settingsSpecs,
9811
9874
  ...emailSpecs,
9812
9875
  ...cronSpecs,
9876
+ ...feedbackSpecs,
9813
9877
  ...infraSpecs,
9814
9878
  ...qaRecordingsSpecs
9815
9879
  };
@@ -9844,6 +9908,7 @@ var HANDLERS = {
9844
9908
  ...settingsHandlers,
9845
9909
  ...emailHandlers,
9846
9910
  ...cronHandlers,
9911
+ ...feedbackHandlers,
9847
9912
  ...infraHandlers,
9848
9913
  ...qaRecordingsHandlers
9849
9914
  };
@@ -9872,12 +9937,13 @@ var GROUP_HELP = {
9872
9937
  settings: settingsHelp,
9873
9938
  email: emailHelp,
9874
9939
  cron: cronHelp,
9940
+ feedback: feedbackHelp,
9875
9941
  infra: infraHelp,
9876
9942
  "qa-recordings": qaRecordingsHelp
9877
9943
  };
9878
9944
 
9879
9945
  // src/ctx.ts
9880
- import fs7 from "fs";
9946
+ import fs8 from "fs";
9881
9947
  import path7 from "path";
9882
9948
 
9883
9949
  // src/parseJsonConfig.ts
@@ -9910,7 +9976,7 @@ function loadWorkspaceAppId(workspaceDir = WORKSPACE_DIR) {
9910
9976
  const manifestPath = path7.join(workspaceDir, "mindstudio.json");
9911
9977
  let raw;
9912
9978
  try {
9913
- raw = fs7.readFileSync(manifestPath, "utf-8");
9979
+ raw = fs8.readFileSync(manifestPath, "utf-8");
9914
9980
  } catch (err) {
9915
9981
  if (err.code === "ENOENT") {
9916
9982
  throw new Error(`mindstudio.json not found at ${manifestPath}`);
@@ -9957,6 +10023,7 @@ Commands:
9957
10023
  settings App settings \u2014 signup allowlist, test accounts, embed origins, toggles
9958
10024
  email Email \u2014 delivery log, blast stats, unsubscribes, inbox, custom domains
9959
10025
  cron Scheduled jobs \u2014 schedules, run history, manual trigger
10026
+ feedback Report a problem with Remy itself, for the user to review and send
9960
10027
  infra Dedicated infrastructure \u2014 provision, hibernate, resize + destroy retrieval capacity
9961
10028
  qa-recordings Browser-QA session replays \u2014 list them, render one as an mp4
9962
10029
 
@@ -9993,6 +10060,7 @@ var GROUPS = [
9993
10060
  "settings",
9994
10061
  "email",
9995
10062
  "cron",
10063
+ "feedback",
9996
10064
  "infra",
9997
10065
  "qa-recordings"
9998
10066
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madewithremy/admin",
3
- "version": "0.1.47",
3
+ "version": "0.1.49",
4
4
  "description": "Admin SDK + CLI for managing production Remy apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",