slackmark-node 0.1.1 → 0.1.2

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/errors.d.ts CHANGED
@@ -56,5 +56,10 @@ export declare class NodeRenderError extends Error implements StructuredRenderer
56
56
  readonly rendererId: string | undefined;
57
57
  constructor(code: NodeRenderErrorCode, message: string, options?: NodeRenderErrorOptions);
58
58
  }
59
+ /**
60
+ * Identifies a {@link NodeRenderError} from any entry of this package. Prefer this to
61
+ * `instanceof`, which is false across an entry boundary.
62
+ */
63
+ export declare function isNodeRenderError(value: unknown): value is NodeRenderError;
59
64
  export declare function normalizeNodeRenderError(error: unknown, code: NodeRenderErrorCode, message: string, stage?: NodeRenderStage, retryable?: boolean): NodeRenderError | OperationError;
60
65
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,mBAAmB;aAC9B,YAAY,EAAE,eAAe;aAC7B,oBAAoB,EAAE,wBAAwB;aAC9C,mBAAmB,EAAE,sBAAsB;aAC3C,aAAa,EAAE,gBAAgB;aAC/B,aAAa,EAAE,gBAAgB;aAC/B,WAAW,EAAE,cAAc;aAC3B,aAAa,EAAE,gBAAgB;aAC/B,cAAc,EAAE,iBAAiB;aACjC,WAAW,EAAE,cAAc;aAC3B,SAAS,EAAE,YAAY;aACvB,YAAY,EAAE,eAAe;aAC7B,WAAW,EAAE,cAAc;CACnB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjG,eAAO,MAAM,eAAe;aAC1B,SAAS,EAAE,WAAW;aACtB,SAAS,EAAE,YAAY;aACvB,OAAO,EAAE,SAAS;aAClB,cAAc,EAAE,iBAAiB;aACjC,YAAY,EAAE,eAAe;aAC7B,aAAa,EAAE,gBAAgB;aAC/B,cAAc,EAAE,iBAAiB;aACjC,aAAa,EAAE,gBAAgB;aAC/B,MAAM,EAAE,QAAQ;aAChB,gBAAgB,EAAE,mBAAmB;aACrC,MAAM,EAAE,QAAQ;aAChB,gBAAgB,EAAE,mBAAmB;CAC7B,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAkB,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhE,YACE,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,EACtC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAUvD;CACF;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAM,YAAW,uBAAuB;IAC3E,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,YACE,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAGR,EAQF;CACF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,eAAwC,EAC/C,SAAS,UAAQ,GAChB,eAAe,GAAG,cAAc,CAIlC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createNodeConverter } from "./create-node-converter.js";
2
2
  export type { CreateNodeConverterOptions, NodeCloseOptions, NodeConvertOptions, NodeConverter, NodeRenderingOptions, NodeUploadOptions, } from "./create-node-converter.js";
3
- export { NodeRenderError, NodeRenderErrorCode, NodeRenderStage, NodeShutdownTimeoutError, } from "./errors.js";
3
+ export { isNodeRenderError, NodeRenderError, NodeRenderErrorCode, NodeRenderStage, NodeShutdownTimeoutError, } from "./errors.js";
4
4
  export type { NodeRenderErrorOptions } from "./errors.js";
5
5
  export { NodeConverterState } from "./status.js";
6
6
  export type { NodeConverterStatus, NodeWorkStatus } from "./status.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,EAC9B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,EAC9B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -5,6 +5,17 @@ import { dirname, join } from "node:path";
5
5
  import { createHash } from "node:crypto";
6
6
  import { SlackUploadError, SlackUploadStage } from "slackmark/slack";
7
7
  //#region src/errors.ts
8
+ /**
9
+ * Registry-keyed marker, not a module-local symbol.
10
+ *
11
+ * Each published entry (`slackmark-node`, `slackmark-node/renderers`,
12
+ * `slackmark-node/puppeteer`) is bundled without code splitting, so every entry carries
13
+ * its own copy of {@link NodeRenderError} and `instanceof` is false for an error that
14
+ * crosses an entry boundary. A renderer always crosses one: the renderers live in
15
+ * `/renderers` and the runtime that throws at them lives in `/puppeteer`. `Symbol.for`
16
+ * keys are shared by every copy, which is what makes {@link isNodeRenderError} reliable.
17
+ */
18
+ const NODE_RENDER_ERROR_BRAND = Symbol.for("slackmark.error.nodeRender");
8
19
  const NodeRenderErrorCode = {
9
20
  AssetMissing: "asset_missing",
10
21
  BrowserBinaryMissing: "browser_binary_missing",
@@ -56,6 +67,14 @@ var NodeShutdownTimeoutError = class extends Error {
56
67
  * Sanitized failure from the Node rendering boundary.
57
68
  */
58
69
  var NodeRenderError = class extends Error {
70
+ static {
71
+ Object.defineProperty(this.prototype, NODE_RENDER_ERROR_BRAND, {
72
+ configurable: false,
73
+ enumerable: false,
74
+ value: true,
75
+ writable: false
76
+ });
77
+ }
59
78
  code;
60
79
  stage;
61
80
  retryable;
@@ -72,8 +91,20 @@ var NodeRenderError = class extends Error {
72
91
  this.rendererId = options.rendererId;
73
92
  }
74
93
  };
94
+ /**
95
+ * Identifies a {@link NodeRenderError} from any entry of this package. Prefer this to
96
+ * `instanceof`, which is false across an entry boundary.
97
+ */
98
+ function isNodeRenderError(value) {
99
+ if (typeof value !== "object" || value === null) return false;
100
+ try {
101
+ return Reflect.get(value, NODE_RENDER_ERROR_BRAND) === true;
102
+ } catch {
103
+ return false;
104
+ }
105
+ }
75
106
  function normalizeNodeRenderError(error, code, message, stage = NodeRenderStage.Render, retryable = false) {
76
- return error instanceof NodeRenderError || isOperationError(error) ? error : new NodeRenderError(code, message, {
107
+ return isNodeRenderError(error) || isOperationError(error) ? error : new NodeRenderError(code, message, {
77
108
  stage,
78
109
  retryable,
79
110
  cause: error
@@ -397,7 +428,7 @@ var KatexRenderer = class {
397
428
  }, context);
398
429
  } catch (error) {
399
430
  if (isOperationError(error)) throw error;
400
- if (error instanceof NodeRenderError) {
431
+ if (isNodeRenderError(error)) {
401
432
  const sanitizedRenderFailure = error.code === NodeRenderErrorCode.RenderFailed && error.cause === void 0;
402
433
  if (error.code !== NodeRenderErrorCode.RenderFailed || sanitizedRenderFailure) throw error;
403
434
  }
@@ -612,7 +643,7 @@ var MermaidRenderer = class {
612
643
  }, context);
613
644
  } catch (error) {
614
645
  if (isOperationError(error)) throw error;
615
- if (error instanceof NodeRenderError) {
646
+ if (isNodeRenderError(error)) {
616
647
  if (error.code !== NodeRenderErrorCode.RenderFailed) throw error;
617
648
  }
618
649
  throw new NodeRenderError(NodeRenderErrorCode.RenderFailed, "Mermaid rendering failed", {
@@ -950,7 +981,7 @@ var PuppeteerRenderRuntime = class {
950
981
  if (context !== void 0) try {
951
982
  await cleanupContext();
952
983
  } catch (cleanupError) {
953
- if (outcome.ok || cleanupError instanceof NodeRenderError && cleanupError.stage === "browser_cleanup") outcome = {
984
+ if (outcome.ok || isNodeRenderError(cleanupError) && cleanupError.stage === "browser_cleanup") outcome = {
954
985
  ok: false,
955
986
  error: cleanupError
956
987
  };
@@ -1787,6 +1818,6 @@ function normalizeConfigurationError(error) {
1787
1818
  });
1788
1819
  }
1789
1820
  //#endregion
1790
- export { ConfigurationError, NodeConverterState, NodeRenderError, NodeRenderErrorCode, NodeRenderStage, NodeShutdownTimeoutError, OperationAbortedError, OperationDeadlineExceededError, OperationError, OperationErrorCode, OperationShutdownError, createNodeConverter };
1821
+ export { ConfigurationError, NodeConverterState, NodeRenderError, NodeRenderErrorCode, NodeRenderStage, NodeShutdownTimeoutError, OperationAbortedError, OperationDeadlineExceededError, OperationError, OperationErrorCode, OperationShutdownError, createNodeConverter, isNodeRenderError };
1791
1822
 
1792
1823
  //# sourceMappingURL=index.js.map