@epilot/cli 0.1.133 → 0.1.135

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
@@ -29,7 +29,7 @@ npm install -g @epilot/cli
29
29
 
30
30
  <!-- usage-help -->
31
31
  ```
32
- epilot v0.1.133 — CLI for epilot APIs
32
+ epilot v0.1.135 — CLI for epilot APIs
33
33
 
34
34
  USAGE
35
35
  epilot <api> <operationId> [params...] [flags]
@@ -961,7 +961,8 @@
961
961
  "PT15M",
962
962
  "PT1H",
963
963
  "P1D",
964
- "P1M"
964
+ "P1M",
965
+ "P1Y"
965
966
  ]
966
967
  },
967
968
  "required": true,
@@ -1299,7 +1300,8 @@
1299
1300
  "PT15M",
1300
1301
  "PT1H",
1301
1302
  "P1D",
1302
- "P1M"
1303
+ "P1M",
1304
+ "P1Y"
1303
1305
  ]
1304
1306
  },
1305
1307
  "required": true,
@@ -1473,7 +1475,8 @@
1473
1475
  "PT15M",
1474
1476
  "PT1H",
1475
1477
  "P1D",
1476
- "P1M"
1478
+ "P1M",
1479
+ "P1Y"
1477
1480
  ]
1478
1481
  },
1479
1482
  "required": true,
@@ -13042,6 +13045,10 @@
13042
13045
  "items": {
13043
13046
  "$ref": "#/components/schemas/NotificationTriggerConfig"
13044
13047
  }
13048
+ },
13049
+ "engagement_center_enabled": {
13050
+ "type": "boolean",
13051
+ "description": "Master toggle for the portal's engagement center (in-app notifications including the notification triggers above). Off when absent — portal users only see the engagement center and receive trigger notifications after an admin enables it."
13045
13052
  }
13046
13053
  }
13047
13054
  },
@@ -13947,7 +13954,26 @@
13947
13954
  }
13948
13955
  },
13949
13956
  "templates_ref": {
13950
- "$ref": "#/components/schemas/TemplatesRef"
13957
+ "type": "object",
13958
+ "description": "Reference to admin-authored portal configuration (a page block or a global search configuration item) from which the API derives Handlebars templates server-side. This replaces client-supplied template strings so portal users can never submit arbitrary templates for resolution. When both a reference and raw `templates` are provided, the reference wins and the raw templates are ignored.",
13959
+ "properties": {
13960
+ "page_id": {
13961
+ "type": "string",
13962
+ "description": "ID of the portal page to derive templates from. When given without `block_id`, templates are derived from every block of the page and returned resolved as a nested map keyed by block id (the entity detail page contract)."
13963
+ },
13964
+ "block_id": {
13965
+ "type": "string",
13966
+ "description": "ID of a block within the page. Templates are derived from the block's content according to its block type (e.g. meter_selector, meter_reading, entity_list)."
13967
+ },
13968
+ "config_id": {
13969
+ "type": "string",
13970
+ "description": "For blocks carrying a per-schema configuration array (entity_list), the id of the configuration item to derive templates from. Requires `page_id` and `block_id`."
13971
+ },
13972
+ "global_search_config_id": {
13973
+ "type": "string",
13974
+ "description": "ID of the portal's `global_search` configuration item to derive search result templates and the group title template from. Mutually exclusive with `page_id`."
13975
+ }
13976
+ }
13951
13977
  }
13952
13978
  }
13953
13979
  },
@@ -16578,7 +16604,8 @@
16578
16604
  "PT15M",
16579
16605
  "PT1H",
16580
16606
  "P1D",
16581
- "P1M"
16607
+ "P1M",
16608
+ "P1Y"
16582
16609
  ]
16583
16610
  }
16584
16611
  },
@@ -18683,7 +18710,6 @@
18683
18710
  "token_endpoint",
18684
18711
  "grant_type",
18685
18712
  "code",
18686
- "redirect_uri",
18687
18713
  "client_id",
18688
18714
  "code_verifier"
18689
18715
  ],
@@ -18709,8 +18735,8 @@
18709
18735
  },
18710
18736
  "redirect_uri": {
18711
18737
  "type": "string",
18712
- "description": "The redirect uri",
18713
- "example": "https://customer-portal.com/login"
18738
+ "description": "The redirect uri used in the authorization request. Optional: when omitted it is\nresolved server-side from the provider's configured `redirect_uri`, falling back to\nthe portal's own callback route (`https://<domain>/sso`).\n",
18739
+ "example": "https://customer-portal.com/sso"
18714
18740
  },
18715
18741
  "client_id": {
18716
18742
  "type": "string",
@@ -1437,6 +1437,49 @@
1437
1437
  "format": "date-time",
1438
1438
  "description": "When the contact unsubscribed from email marketing (opted out). Server-managed."
1439
1439
  },
1440
+ "email_open_count": {
1441
+ "type": "integer",
1442
+ "description": "Number of SES opens recorded for this recipient (only where open tracking is on)."
1443
+ },
1444
+ "email_first_opened_at": {
1445
+ "type": "string",
1446
+ "format": "date-time",
1447
+ "description": "When the recipient first opened the email."
1448
+ },
1449
+ "email_last_opened_at": {
1450
+ "type": "string",
1451
+ "format": "date-time",
1452
+ "description": "When the recipient most recently opened the email."
1453
+ },
1454
+ "email_click_count": {
1455
+ "type": "integer",
1456
+ "description": "Number of SES link clicks recorded for this recipient (only where click tracking is on)."
1457
+ },
1458
+ "email_first_clicked_at": {
1459
+ "type": "string",
1460
+ "format": "date-time",
1461
+ "description": "When the recipient first clicked a link."
1462
+ },
1463
+ "email_clicked_links": {
1464
+ "type": "array",
1465
+ "description": "Raw click events (URL + timestamp); aggregate per-URL on the client.",
1466
+ "items": {
1467
+ "type": "object",
1468
+ "required": [
1469
+ "url",
1470
+ "clicked_at"
1471
+ ],
1472
+ "properties": {
1473
+ "url": {
1474
+ "type": "string"
1475
+ },
1476
+ "clicked_at": {
1477
+ "type": "string",
1478
+ "format": "date-time"
1479
+ }
1480
+ }
1481
+ }
1482
+ },
1440
1483
  "updated_at": {
1441
1484
  "type": "string",
1442
1485
  "format": "date-time"
@@ -1947,7 +1990,11 @@
1947
1990
  "bounced_soft",
1948
1991
  "complained",
1949
1992
  "failed",
1950
- "unsubscribed"
1993
+ "unsubscribed",
1994
+ "opened",
1995
+ "clicked",
1996
+ "total_opens",
1997
+ "total_clicks"
1951
1998
  ],
1952
1999
  "properties": {
1953
2000
  "total_emailed": {
@@ -1959,7 +2006,7 @@
1959
2006
  },
1960
2007
  "delivered": {
1961
2008
  "type": "integer",
1962
- "description": "Currently always 0 (Delivery events are not published yet)."
2009
+ "description": "Recipients whose SES Delivery event was recorded (needs Delivery publishing enabled)."
1963
2010
  },
1964
2011
  "bounced": {
1965
2012
  "type": "integer"
@@ -1981,6 +2028,22 @@
1981
2028
  "unsubscribed": {
1982
2029
  "type": "integer",
1983
2030
  "description": "Recipients who opted out of email marketing."
2031
+ },
2032
+ "opened": {
2033
+ "type": "integer",
2034
+ "description": "Unique recipients with at least one open (only where open tracking is on)."
2035
+ },
2036
+ "clicked": {
2037
+ "type": "integer",
2038
+ "description": "Unique recipients with at least one link click (only where click tracking is on)."
2039
+ },
2040
+ "total_opens": {
2041
+ "type": "integer",
2042
+ "description": "Total opens across all recipients."
2043
+ },
2044
+ "total_clicks": {
2045
+ "type": "integer",
2046
+ "description": "Total link clicks across all recipients."
1984
2047
  }
1985
2048
  }
1986
2049
  }
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
11
11
  var main = defineCommand({
12
12
  meta: {
13
13
  name: "epilot",
14
- version: "0.1.133",
14
+ version: "0.1.135",
15
15
  description: "CLI for epilot APIs"
16
16
  },
17
17
  args: {
@@ -31,7 +31,7 @@ var main = defineCommand({
31
31
  profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
32
32
  config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
33
33
  completion: () => import("../completion-MSAMXF3P.js").then((m) => m.default),
34
- upgrade: () => import("../upgrade-SOALILEI.js").then((m) => m.default),
34
+ upgrade: () => import("../upgrade-TIU4ZOBM.js").then((m) => m.default),
35
35
  "access-token": () => import("../access-token-WWE6BDJH.js").then((m) => m.default),
36
36
  address: () => import("../address-EH3C4CVB.js").then((m) => m.default),
37
37
  "address-suggestions": () => import("../address-suggestions-RRSLOBFW.js").then((m) => m.default),
@@ -134,7 +134,7 @@ process.stderr.on("error", (err) => {
134
134
  if (err.code === "EPIPE") process.exit(0);
135
135
  throw err;
136
136
  });
137
- var VERSION = true ? "0.1.133" : (await null).default.version;
137
+ var VERSION = true ? "0.1.135" : (await null).default.version;
138
138
  var reorderedArgv = hoistFlagsAfterSubcommand(process.argv.slice(2));
139
139
  process.argv = [process.argv[0], process.argv[1], ...reorderedArgv];
140
140
  var args = process.argv.slice(2);
@@ -72,7 +72,7 @@ ${GREEN}${BOLD}Upgraded to @epilot/cli@${latest}${RESET}
72
72
  }
73
73
  });
74
74
  var getCurrentVersion = () => {
75
- if (true) return "0.1.133";
75
+ if (true) return "0.1.135";
76
76
  try {
77
77
  const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
78
78
  encoding: "utf-8",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/cli",
3
- "version": "0.1.133",
3
+ "version": "0.1.135",
4
4
  "description": "CLI for epilot APIs",
5
5
  "type": "module",
6
6
  "bin": {