@gravito/signal 1.0.0-alpha.3 → 1.0.0-alpha.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/index.js CHANGED
@@ -91,21 +91,21 @@ var ReactRenderer_exports = {};
91
91
  __export(ReactRenderer_exports, {
92
92
  ReactRenderer: () => ReactRenderer
93
93
  });
94
- var import_react, import_server, ReactRenderer;
94
+ var ReactRenderer;
95
95
  var init_ReactRenderer = __esm({
96
96
  "src/renderers/ReactRenderer.ts"() {
97
97
  "use strict";
98
- import_react = require("react");
99
- import_server = require("react-dom/server");
100
98
  ReactRenderer = class {
101
99
  constructor(component, props) {
102
100
  this.component = component;
103
101
  this.props = props;
104
102
  }
105
103
  async render(data) {
104
+ const { createElement } = await import("react");
105
+ const { renderToStaticMarkup } = await import("react-dom/server");
106
106
  const mergedProps = { ...this.props, ...data };
107
- const element = (0, import_react.createElement)(this.component, mergedProps);
108
- const html = (0, import_server.renderToStaticMarkup)(element);
107
+ const element = createElement(this.component, mergedProps);
108
+ const html = renderToStaticMarkup(element);
109
109
  const fullHtml = html.startsWith("<!DOCTYPE") ? html : `<!DOCTYPE html>${html}`;
110
110
  return {
111
111
  html: fullHtml,
@@ -34889,11 +34889,11 @@ var require_compiler_ssr_cjs = __commonJS({
34889
34889
  ast.codegenNode = compilerDom.createBlockStatement(context.body);
34890
34890
  ast.ssrHelpers = Array.from(
34891
34891
  /* @__PURE__ */ new Set([
34892
- ...Array.from(ast.helpers).filter((h2) => h2 in ssrHelpers),
34892
+ ...Array.from(ast.helpers).filter((h) => h in ssrHelpers),
34893
34893
  ...context.helpers
34894
34894
  ])
34895
34895
  );
34896
- ast.helpers = new Set(Array.from(ast.helpers).filter((h2) => !(h2 in ssrHelpers)));
34896
+ ast.helpers = new Set(Array.from(ast.helpers).filter((h) => !(h in ssrHelpers)));
34897
34897
  }
34898
34898
  function createSSRTransformContext(root, options, helpers = /* @__PURE__ */ new Set(), withSlotScopeId = false) {
34899
34899
  const body = [];
@@ -36014,9 +36014,9 @@ var require_server_renderer_cjs_prod = __commonJS({
36014
36014
  }
36015
36015
  return ret;
36016
36016
  }
36017
- async function renderToString2(input, context = {}) {
36017
+ async function renderToString(input, context = {}) {
36018
36018
  if (isVNode$1(input)) {
36019
- return renderToString2(Vue.createApp({ render: () => input }), context);
36019
+ return renderToString(Vue.createApp({ render: () => input }), context);
36020
36020
  }
36021
36021
  const vnode = Vue.createVNode(input._component, input._props);
36022
36022
  vnode.appContext = input._context;
@@ -36182,7 +36182,7 @@ var require_server_renderer_cjs_prod = __commonJS({
36182
36182
  exports2.renderToNodeStream = renderToNodeStream;
36183
36183
  exports2.renderToSimpleStream = renderToSimpleStream;
36184
36184
  exports2.renderToStream = renderToStream;
36185
- exports2.renderToString = renderToString2;
36185
+ exports2.renderToString = renderToString;
36186
36186
  exports2.renderToWebStream = renderToWebStream;
36187
36187
  exports2.ssrGetDirectiveProps = ssrGetDirectiveProps;
36188
36188
  exports2.ssrGetDynamicModelProps = ssrGetDynamicModelProps;
@@ -37140,9 +37140,9 @@ ${codeFrame}` : message);
37140
37140
  }
37141
37141
  return ret;
37142
37142
  }
37143
- async function renderToString2(input, context = {}) {
37143
+ async function renderToString(input, context = {}) {
37144
37144
  if (isVNode$1(input)) {
37145
- return renderToString2(Vue.createApp({ render: () => input }), context);
37145
+ return renderToString(Vue.createApp({ render: () => input }), context);
37146
37146
  }
37147
37147
  const vnode = Vue.createVNode(input._component, input._props);
37148
37148
  vnode.appContext = input._context;
@@ -37308,7 +37308,7 @@ ${codeFrame}` : message);
37308
37308
  exports2.renderToNodeStream = renderToNodeStream;
37309
37309
  exports2.renderToSimpleStream = renderToSimpleStream;
37310
37310
  exports2.renderToStream = renderToStream;
37311
- exports2.renderToString = renderToString2;
37311
+ exports2.renderToString = renderToString;
37312
37312
  exports2.renderToWebStream = renderToWebStream;
37313
37313
  exports2.ssrGetDirectiveProps = ssrGetDirectiveProps;
37314
37314
  exports2.ssrGetDynamicModelProps = ssrGetDynamicModelProps;
@@ -37348,23 +37348,23 @@ var VueRenderer_exports = {};
37348
37348
  __export(VueRenderer_exports, {
37349
37349
  VueRenderer: () => VueRenderer
37350
37350
  });
37351
- var import_server_renderer, import_vue, VueRenderer;
37351
+ var VueRenderer;
37352
37352
  var init_VueRenderer = __esm({
37353
37353
  "src/renderers/VueRenderer.ts"() {
37354
37354
  "use strict";
37355
- import_server_renderer = __toESM(require_server_renderer());
37356
- import_vue = require("vue");
37357
37355
  VueRenderer = class {
37358
37356
  constructor(component, props) {
37359
37357
  this.component = component;
37360
37358
  this.props = props;
37361
37359
  }
37362
37360
  async render(data) {
37361
+ const { createSSRApp, h } = await import("vue");
37362
+ const { renderToString } = await Promise.resolve().then(() => __toESM(require_server_renderer()));
37363
37363
  const mergedProps = { ...this.props, ...data };
37364
- const app = (0, import_vue.createSSRApp)({
37365
- render: () => (0, import_vue.h)(this.component, mergedProps)
37364
+ const app = createSSRApp({
37365
+ render: () => h(this.component, mergedProps)
37366
37366
  });
37367
- const html = await (0, import_server_renderer.renderToString)(app);
37367
+ const html = await renderToString(app);
37368
37368
  const fullHtml = html.startsWith("<!DOCTYPE") ? html : `<!DOCTYPE html>${html}`;
37369
37369
  return {
37370
37370
  html: fullHtml,
@@ -37576,6 +37576,9 @@ var init_DevServer = __esm({
37576
37576
  });
37577
37577
  router.get(`${prefix}/:id`, (ctx) => {
37578
37578
  const id = ctx.req.param("id");
37579
+ if (!id) {
37580
+ return ctx.text("Bad Request", 400);
37581
+ }
37579
37582
  const entry = this.mailbox.get(id);
37580
37583
  if (!entry) {
37581
37584
  return ctx.text("Email not found", 404);
@@ -37584,6 +37587,9 @@ var init_DevServer = __esm({
37584
37587
  });
37585
37588
  router.get(`${prefix}/:id/html`, (ctx) => {
37586
37589
  const id = ctx.req.param("id");
37590
+ if (!id) {
37591
+ return ctx.text("Bad Request", 400);
37592
+ }
37587
37593
  const entry = this.mailbox.get(id);
37588
37594
  if (!entry) {
37589
37595
  return ctx.text("Not found", 404);
@@ -37592,16 +37598,21 @@ var init_DevServer = __esm({
37592
37598
  });
37593
37599
  router.get(`${prefix}/:id/text`, (ctx) => {
37594
37600
  const id = ctx.req.param("id");
37601
+ if (!id) {
37602
+ return ctx.text("Bad Request", 400);
37603
+ }
37595
37604
  const entry = this.mailbox.get(id);
37596
37605
  if (!entry) {
37597
37606
  return ctx.text("Not found", 404);
37598
37607
  }
37599
- return ctx.text(entry.text || "No text content", 200, {
37600
- "Content-Type": "text/plain; charset=utf-8"
37601
- });
37608
+ ctx.header("Content-Type", "text/plain; charset=utf-8");
37609
+ return ctx.text(entry.text || "No text content", 200);
37602
37610
  });
37603
37611
  router.get(`${prefix}/:id/raw`, (ctx) => {
37604
37612
  const id = ctx.req.param("id");
37613
+ if (!id) {
37614
+ return ctx.json({ error: "Bad Request" }, 400);
37615
+ }
37605
37616
  const entry = this.mailbox.get(id);
37606
37617
  if (!entry) {
37607
37618
  return ctx.json({ error: "Not found" }, 404);
@@ -37612,7 +37623,11 @@ var init_DevServer = __esm({
37612
37623
  return ctx.text("Method not allowed", 405);
37613
37624
  });
37614
37625
  router.delete(`${prefix}/:id`, (ctx) => {
37615
- const success = this.mailbox.delete(ctx.req.param("id"));
37626
+ const id = ctx.req.param("id");
37627
+ if (!id) {
37628
+ return ctx.json({ success: false, error: "Bad Request" }, 400);
37629
+ }
37630
+ const success = this.mailbox.delete(id);
37616
37631
  return ctx.json({ success });
37617
37632
  });
37618
37633
  router.delete(prefix, (ctx) => {
@@ -37686,6 +37701,9 @@ var init_OrbitSignal = __esm({
37686
37701
  }
37687
37702
  /**
37688
37703
  * Get the singleton instance of OrbitSignal
37704
+ *
37705
+ * @returns The singleton instance of OrbitSignal.
37706
+ * @throws {Error} If OrbitSignal has not been initialized.
37689
37707
  */
37690
37708
  static getInstance() {
37691
37709
  if (!_OrbitSignal.instance) {
@@ -37695,6 +37713,9 @@ var init_OrbitSignal = __esm({
37695
37713
  }
37696
37714
  /**
37697
37715
  * Configure the OrbitSignal instance
37716
+ *
37717
+ * @param config - The mail configuration object.
37718
+ * @returns A new instance of OrbitSignal.
37698
37719
  */
37699
37720
  static configure(config) {
37700
37721
  if (!config.transport && !config.devMode) {
@@ -37705,6 +37726,8 @@ var init_OrbitSignal = __esm({
37705
37726
  }
37706
37727
  /**
37707
37728
  * Install the orbit into PlanetCore
37729
+ *
37730
+ * @param core - The PlanetCore instance.
37708
37731
  */
37709
37732
  install(core) {
37710
37733
  core.logger.info("[OrbitSignal] Initializing Mail Service (Exposed as: mail)");
@@ -37729,6 +37752,10 @@ var init_OrbitSignal = __esm({
37729
37752
  }
37730
37753
  /**
37731
37754
  * Send a mailable instance
37755
+ *
37756
+ * @param mailable - The mailable object to send.
37757
+ * @returns A promise that resolves when the email is sent.
37758
+ * @throws {Error} If the message is missing "from" or "to" addresses, or if no transport is configured.
37732
37759
  */
37733
37760
  async send(mailable) {
37734
37761
  const envelope = await mailable.buildEnvelope(this.config);
@@ -37762,6 +37789,9 @@ var init_OrbitSignal = __esm({
37762
37789
  *
37763
37790
  * Push a mailable into the queue for execution.
37764
37791
  * Requires OrbitStream to be installed and available in the context.
37792
+ *
37793
+ * @param mailable - The mailable object to queue.
37794
+ * @returns A promise that resolves when the job is pushed to the queue or sent immediately if no queue service is found.
37765
37795
  */
37766
37796
  async queue(mailable) {
37767
37797
  const queue = this.queueService;
@@ -37811,17 +37841,17 @@ var HtmlRenderer = class {
37811
37841
  };
37812
37842
 
37813
37843
  // src/renderers/TemplateRenderer.ts
37814
- var import_prism = require("@gravito/prism");
37815
37844
  var TemplateRenderer = class {
37816
- engine;
37817
37845
  template;
37846
+ viewsDir;
37818
37847
  constructor(templateName, viewsDir) {
37819
37848
  this.template = templateName;
37820
- const defaultDir = viewsDir || `${process.cwd()}/src/emails`;
37821
- this.engine = new import_prism.TemplateEngine(defaultDir);
37849
+ this.viewsDir = viewsDir || `${process.cwd()}/src/emails`;
37822
37850
  }
37823
37851
  async render(data) {
37824
- const html = this.engine.render(this.template, data, {});
37852
+ const { TemplateEngine } = await import("@gravito/prism");
37853
+ const engine = new TemplateEngine(this.viewsDir);
37854
+ const html = engine.render(this.template, data, {});
37825
37855
  return {
37826
37856
  html,
37827
37857
  text: this.stripHtml(html)
package/dist/index.mjs CHANGED
@@ -3,8 +3,8 @@ import {
3
3
  LogTransport,
4
4
  MemoryTransport,
5
5
  OrbitSignal
6
- } from "./chunk-456QRYFW.mjs";
7
- import "./chunk-6DZX6EAA.mjs";
6
+ } from "./chunk-YLVDJSED.mjs";
7
+ import "./chunk-EBO3CZXG.mjs";
8
8
 
9
9
  // src/renderers/HtmlRenderer.ts
10
10
  var HtmlRenderer = class {
@@ -23,17 +23,17 @@ var HtmlRenderer = class {
23
23
  };
24
24
 
25
25
  // src/renderers/TemplateRenderer.ts
26
- import { TemplateEngine } from "@gravito/prism";
27
26
  var TemplateRenderer = class {
28
- engine;
29
27
  template;
28
+ viewsDir;
30
29
  constructor(templateName, viewsDir) {
31
30
  this.template = templateName;
32
- const defaultDir = viewsDir || `${process.cwd()}/src/emails`;
33
- this.engine = new TemplateEngine(defaultDir);
31
+ this.viewsDir = viewsDir || `${process.cwd()}/src/emails`;
34
32
  }
35
33
  async render(data) {
36
- const html = this.engine.render(this.template, data, {});
34
+ const { TemplateEngine } = await import("@gravito/prism");
35
+ const engine = new TemplateEngine(this.viewsDir);
36
+ const html = engine.render(this.template, data, {});
37
37
  return {
38
38
  html,
39
39
  text: this.stripHtml(html)
@@ -108,7 +108,7 @@ var Mailable = class {
108
108
  */
109
109
  react(component, props) {
110
110
  this.rendererResolver = async () => {
111
- const { ReactRenderer } = await import("./ReactRenderer-L5INVYKT.mjs");
111
+ const { ReactRenderer } = await import("./ReactRenderer-24SQ4KRU.mjs");
112
112
  return new ReactRenderer(component, props);
113
113
  };
114
114
  return this;
@@ -119,7 +119,7 @@ var Mailable = class {
119
119
  */
120
120
  vue(component, props) {
121
121
  this.rendererResolver = async () => {
122
- const { VueRenderer } = await import("./VueRenderer-Z5PRVBNH.mjs");
122
+ const { VueRenderer } = await import("./VueRenderer-SUP66ISX.mjs");
123
123
  return new VueRenderer(component, props);
124
124
  };
125
125
  return this;
@@ -144,7 +144,7 @@ var Mailable = class {
144
144
  * Queue the mailable for sending.
145
145
  */
146
146
  async queue() {
147
- const { OrbitSignal: OrbitSignal2 } = await import("./OrbitSignal-MABW4DDW.mjs");
147
+ const { OrbitSignal: OrbitSignal2 } = await import("./OrbitSignal-IPSA2CDO.mjs");
148
148
  return OrbitSignal2.getInstance().queue(this);
149
149
  }
150
150
  // ===== I18n Support =====