@devp0nt/error0 1.0.0-next.5 → 1.0.0-next.50

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.
Files changed (75) hide show
  1. package/dist/cjs/index.cjs +614 -0
  2. package/dist/cjs/index.cjs.map +1 -0
  3. package/dist/cjs/index.d.cts +336 -414
  4. package/dist/cjs/plugins/cause-serialize.cjs +41 -0
  5. package/dist/cjs/plugins/cause-serialize.cjs.map +1 -0
  6. package/dist/cjs/plugins/cause-serialize.d.cts +7 -0
  7. package/dist/cjs/plugins/code.cjs +38 -0
  8. package/dist/cjs/plugins/code.cjs.map +1 -0
  9. package/dist/cjs/plugins/code.d.cts +7 -0
  10. package/dist/cjs/plugins/expected.cjs +54 -0
  11. package/dist/cjs/plugins/expected.cjs.map +1 -0
  12. package/dist/cjs/plugins/expected.d.cts +36 -0
  13. package/dist/cjs/plugins/message-merge.cjs +39 -0
  14. package/dist/cjs/plugins/message-merge.cjs.map +1 -0
  15. package/dist/cjs/plugins/message-merge.d.cts +8 -0
  16. package/dist/cjs/plugins/meta.cjs +78 -0
  17. package/dist/cjs/plugins/meta.cjs.map +1 -0
  18. package/dist/cjs/plugins/meta.d.cts +7 -0
  19. package/dist/cjs/plugins/stack-merge.cjs +42 -0
  20. package/dist/cjs/plugins/stack-merge.cjs.map +1 -0
  21. package/dist/cjs/plugins/stack-merge.d.cts +8 -0
  22. package/dist/cjs/plugins/status.cjs +54 -0
  23. package/dist/cjs/plugins/status.cjs.map +1 -0
  24. package/dist/cjs/plugins/status.d.cts +8 -0
  25. package/dist/cjs/plugins/tags.cjs +73 -0
  26. package/dist/cjs/plugins/tags.cjs.map +1 -0
  27. package/dist/cjs/plugins/tags.d.cts +12 -0
  28. package/dist/esm/index.d.ts +336 -414
  29. package/dist/esm/index.js +530 -341
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/plugins/cause-serialize.d.ts +7 -0
  32. package/dist/esm/plugins/cause-serialize.js +17 -0
  33. package/dist/esm/plugins/cause-serialize.js.map +1 -0
  34. package/dist/esm/plugins/code.d.ts +7 -0
  35. package/dist/esm/plugins/code.js +14 -0
  36. package/dist/esm/plugins/code.js.map +1 -0
  37. package/dist/esm/plugins/expected.d.ts +36 -0
  38. package/dist/esm/plugins/expected.js +30 -0
  39. package/dist/esm/plugins/expected.js.map +1 -0
  40. package/dist/esm/plugins/message-merge.d.ts +8 -0
  41. package/dist/esm/plugins/message-merge.js +15 -0
  42. package/dist/esm/plugins/message-merge.js.map +1 -0
  43. package/dist/esm/plugins/meta.d.ts +7 -0
  44. package/dist/esm/plugins/meta.js +54 -0
  45. package/dist/esm/plugins/meta.js.map +1 -0
  46. package/dist/esm/plugins/stack-merge.d.ts +8 -0
  47. package/dist/esm/plugins/stack-merge.js +18 -0
  48. package/dist/esm/plugins/stack-merge.js.map +1 -0
  49. package/dist/esm/plugins/status.d.ts +8 -0
  50. package/dist/esm/plugins/status.js +30 -0
  51. package/dist/esm/plugins/status.js.map +1 -0
  52. package/dist/esm/plugins/tags.d.ts +12 -0
  53. package/dist/esm/plugins/tags.js +49 -0
  54. package/dist/esm/plugins/tags.js.map +1 -0
  55. package/package.json +53 -23
  56. package/src/index.test.ts +689 -452
  57. package/src/index.ts +1163 -502
  58. package/src/plugins/cause-serialize.test.ts +53 -0
  59. package/src/plugins/cause-serialize.ts +15 -0
  60. package/src/plugins/code.test.ts +27 -0
  61. package/src/plugins/code.ts +12 -0
  62. package/src/plugins/expected.test.ts +47 -0
  63. package/src/plugins/expected.ts +31 -0
  64. package/src/plugins/message-merge.test.ts +32 -0
  65. package/src/plugins/message-merge.ts +19 -0
  66. package/src/plugins/meta.test.ts +32 -0
  67. package/src/plugins/meta.ts +59 -0
  68. package/src/plugins/stack-merge.test.ts +64 -0
  69. package/src/plugins/stack-merge.ts +20 -0
  70. package/src/plugins/status.test.ts +54 -0
  71. package/src/plugins/status.ts +29 -0
  72. package/src/plugins/tags.test.ts +74 -0
  73. package/src/plugins/tags.ts +51 -0
  74. package/dist/cjs/index.js +0 -435
  75. package/dist/cjs/index.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var cause_serialize_exports = {};
20
+ __export(cause_serialize_exports, {
21
+ causeSerializePlugin: () => causeSerializePlugin
22
+ });
23
+ module.exports = __toCommonJS(cause_serialize_exports);
24
+ var import__ = require('../index.cjs');
25
+ const causeSerializePlugin = ({ hideWhenPublic = true } = {}) => import__.Error0.plugin().cause({
26
+ serialize: ({ value, error, isPublic }) => {
27
+ if (hideWhenPublic && isPublic) {
28
+ return void 0;
29
+ }
30
+ const ctor = error.constructor;
31
+ if (ctor.is(value)) {
32
+ return ctor.serialize(value, isPublic);
33
+ }
34
+ return void 0;
35
+ }
36
+ });
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ causeSerializePlugin
40
+ });
41
+ //# sourceMappingURL=cause-serialize.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/cause-serialize.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nexport const causeSerializePlugin = ({ hideWhenPublic = true }: { hideWhenPublic?: boolean } = {}) =>\n Error0.plugin().cause({\n serialize: ({ value, error, isPublic }) => {\n if (hideWhenPublic && isPublic) {\n return undefined\n }\n const ctor = error.constructor as typeof Error0\n if (ctor.is(value)) {\n return ctor.serialize(value, isPublic)\n }\n return undefined\n },\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEhB,MAAM,uBAAuB,CAAC,EAAE,iBAAiB,KAAK,IAAkC,CAAC,MAC9F,gBAAO,OAAO,EAAE,MAAM;AAAA,EACpB,WAAW,CAAC,EAAE,OAAO,OAAO,SAAS,MAAM;AACzC,QAAI,kBAAkB,UAAU;AAC9B,aAAO;AAAA,IACT;AACA,UAAM,OAAO,MAAM;AACnB,QAAI,KAAK,GAAG,KAAK,GAAG;AAClB,aAAO,KAAK,UAAU,OAAO,QAAQ;AAAA,IACvC;AACA,WAAO;AAAA,EACT;AACF,CAAC;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { PluginError0 } from '../index.cjs';
2
+
3
+ declare const causeSerializePlugin: ({ hideWhenPublic }?: {
4
+ hideWhenPublic?: boolean;
5
+ }) => PluginError0<Record<never, never>, Record<never, never>>;
6
+
7
+ export { causeSerializePlugin };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var code_exports = {};
20
+ __export(code_exports, {
21
+ codePlugin: () => codePlugin
22
+ });
23
+ module.exports = __toCommonJS(code_exports);
24
+ var import__ = require('../index.cjs');
25
+ const codePlugin = ({ codes } = {}) => {
26
+ const isCode = (value) => typeof value === "string" && (!codes || codes.includes(value));
27
+ return import__.Error0.plugin().prop("code", {
28
+ init: (code) => code,
29
+ resolve: ({ flow }) => flow.find(Boolean),
30
+ serialize: ({ resolved, isPublic }) => resolved,
31
+ deserialize: ({ value, record }) => isCode(value) ? value : void 0
32
+ });
33
+ };
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ codePlugin
37
+ });
38
+ //# sourceMappingURL=code.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/code.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nexport const codePlugin = <TCode extends string>({ codes }: { codes?: TCode[] } = {}) => {\n const isCode = (value: unknown): value is TCode =>\n typeof value === 'string' && (!codes || codes.includes(value as TCode))\n return Error0.plugin().prop('code', {\n init: (code: TCode) => code,\n resolve: ({ flow }) => flow.find(Boolean),\n serialize: ({ resolved, isPublic }) => resolved,\n deserialize: ({ value, record }) => (isCode(value) ? value : undefined),\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEhB,MAAM,aAAa,CAAuB,EAAE,MAAM,IAAyB,CAAC,MAAM;AACvF,QAAM,SAAS,CAAC,UACd,OAAO,UAAU,aAAa,CAAC,SAAS,MAAM,SAAS,KAAc;AACvE,SAAO,gBAAO,OAAO,EAAE,KAAK,QAAQ;AAAA,IAClC,MAAM,CAAC,SAAgB;AAAA,IACvB,SAAS,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,OAAO;AAAA,IACxC,WAAW,CAAC,EAAE,UAAU,SAAS,MAAM;AAAA,IACvC,aAAa,CAAC,EAAE,OAAO,OAAO,MAAO,OAAO,KAAK,IAAI,QAAQ;AAAA,EAC/D,CAAC;AACH;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { PluginError0, ErrorPluginPropOptions, Error0 } from '../index.cjs';
2
+
3
+ declare const codePlugin: <TCode extends string>({ codes }?: {
4
+ codes?: TCode[];
5
+ }) => PluginError0<Record<never, never> & Record<"code", ErrorPluginPropOptions<TCode, TCode, Error0, TCode | undefined>>, Record<never, never>>;
6
+
7
+ export { codePlugin };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var expected_exports = {};
20
+ __export(expected_exports, {
21
+ expectedPlugin: () => expectedPlugin
22
+ });
23
+ module.exports = __toCommonJS(expected_exports);
24
+ var import__ = require('../index.cjs');
25
+ const isExpected = (flow) => {
26
+ let expected = false;
27
+ for (const value of flow) {
28
+ if (value === false) {
29
+ return false;
30
+ }
31
+ if (value === true) {
32
+ expected = true;
33
+ }
34
+ }
35
+ return expected;
36
+ };
37
+ const expectedPlugin = ({ hideWhenPublic = true } = {}) => import__.Error0.plugin().prop("expected", {
38
+ init: (input) => input,
39
+ resolve: ({ flow }) => isExpected(flow),
40
+ serialize: ({ resolved, isPublic }) => {
41
+ if (hideWhenPublic && isPublic) {
42
+ return void 0;
43
+ }
44
+ return resolved;
45
+ },
46
+ deserialize: ({ value }) => typeof value === "boolean" ? value : void 0
47
+ }).method("isExpected", (error) => {
48
+ return isExpected(error.flow("expected"));
49
+ });
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ expectedPlugin
53
+ });
54
+ //# sourceMappingURL=expected.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/expected.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nconst isExpected = (flow: unknown[]) => {\n let expected = false\n for (const value of flow) {\n if (value === false) {\n return false\n }\n if (value === true) {\n expected = true\n }\n }\n return expected\n}\n\nexport const expectedPlugin = ({ hideWhenPublic = true }: { hideWhenPublic?: boolean } = {}) =>\n Error0.plugin()\n .prop('expected', {\n init: (input: boolean) => input,\n resolve: ({ flow }) => isExpected(flow),\n serialize: ({ resolved, isPublic }) => {\n if (hideWhenPublic && isPublic) {\n return undefined\n }\n return resolved\n },\n deserialize: ({ value }) => (typeof value === 'boolean' ? value : undefined),\n })\n .method('isExpected', (error) => {\n return isExpected(error.flow('expected'))\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEvB,MAAM,aAAa,CAAC,SAAoB;AACtC,MAAI,WAAW;AACf,aAAW,SAAS,MAAM;AACxB,QAAI,UAAU,OAAO;AACnB,aAAO;AAAA,IACT;AACA,QAAI,UAAU,MAAM;AAClB,iBAAW;AAAA,IACb;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,iBAAiB,CAAC,EAAE,iBAAiB,KAAK,IAAkC,CAAC,MACxF,gBAAO,OAAO,EACX,KAAK,YAAY;AAAA,EAChB,MAAM,CAAC,UAAmB;AAAA,EAC1B,SAAS,CAAC,EAAE,KAAK,MAAM,WAAW,IAAI;AAAA,EACtC,WAAW,CAAC,EAAE,UAAU,SAAS,MAAM;AACrC,QAAI,kBAAkB,UAAU;AAC9B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,aAAa,CAAC,EAAE,MAAM,MAAO,OAAO,UAAU,YAAY,QAAQ;AACpE,CAAC,EACA,OAAO,cAAc,CAAC,UAAU;AAC/B,SAAO,WAAW,MAAM,KAAK,UAAU,CAAC;AAC1C,CAAC;","names":[]}
@@ -0,0 +1,36 @@
1
+ import { PluginError0, ErrorPluginPropOptions, Error0 } from '../index.cjs';
2
+
3
+ declare const expectedPlugin: ({ hideWhenPublic }?: {
4
+ hideWhenPublic?: boolean;
5
+ }) => PluginError0<Record<never, never> & Record<"expected", ErrorPluginPropOptions<boolean, boolean, Error0, boolean>>, Record<never, never> & Record<"isExpected", (error: Error0 & {
6
+ expected: boolean;
7
+ } & {} & {
8
+ own: {
9
+ (): {
10
+ expected: boolean | undefined;
11
+ };
12
+ <TKey extends "expected">(key: TKey): {
13
+ expected: boolean | undefined;
14
+ }[TKey];
15
+ };
16
+ flow: <TKey extends "expected">(key: TKey) => {
17
+ expected: boolean | undefined;
18
+ }[TKey][];
19
+ } & {
20
+ resolve: () => {
21
+ expected: boolean;
22
+ };
23
+ } & {
24
+ readonly __pluginsMap?: {
25
+ props: {
26
+ expected: {
27
+ init: boolean | undefined;
28
+ output: boolean;
29
+ resolve: boolean;
30
+ };
31
+ };
32
+ methods: {};
33
+ } | undefined;
34
+ }) => boolean>>;
35
+
36
+ export { expectedPlugin };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var message_merge_exports = {};
20
+ __export(message_merge_exports, {
21
+ messageMergePlugin: () => messageMergePlugin
22
+ });
23
+ module.exports = __toCommonJS(message_merge_exports);
24
+ var import__ = require('../index.cjs');
25
+ const messageMergePlugin = ({
26
+ delimiter = ": ",
27
+ fallback = "Unknown error"
28
+ } = {}) => import__.Error0.plugin().use("message", {
29
+ serialize: ({ error }) => {
30
+ return error.causes().map((cause) => {
31
+ return cause instanceof Error ? cause.message : void 0;
32
+ }).filter((value) => typeof value === "string").join(delimiter) || fallback;
33
+ }
34
+ });
35
+ // Annotate the CommonJS export names for ESM import in node:
36
+ 0 && (module.exports = {
37
+ messageMergePlugin
38
+ });
39
+ //# sourceMappingURL=message-merge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/message-merge.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nexport const messageMergePlugin = ({\n delimiter = ': ',\n fallback = 'Unknown error',\n}: { delimiter?: string; fallback?: string } = {}) =>\n Error0.plugin().use('message', {\n serialize: ({ error }) => {\n return (\n error\n .causes()\n .map((cause) => {\n return cause instanceof Error ? cause.message : undefined\n })\n .filter((value): value is string => typeof value === 'string')\n .join(delimiter) || fallback\n )\n },\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEhB,MAAM,qBAAqB,CAAC;AAAA,EACjC,YAAY;AAAA,EACZ,WAAW;AACb,IAA+C,CAAC,MAC9C,gBAAO,OAAO,EAAE,IAAI,WAAW;AAAA,EAC7B,WAAW,CAAC,EAAE,MAAM,MAAM;AACxB,WACE,MACG,OAAO,EACP,IAAI,CAAC,UAAU;AACd,aAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,IAClD,CAAC,EACA,OAAO,CAAC,UAA2B,OAAO,UAAU,QAAQ,EAC5D,KAAK,SAAS,KAAK;AAAA,EAE1B;AACF,CAAC;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { PluginError0 } from '../index.cjs';
2
+
3
+ declare const messageMergePlugin: ({ delimiter, fallback, }?: {
4
+ delimiter?: string;
5
+ fallback?: string;
6
+ }) => PluginError0<Record<never, never>, Record<never, never>>;
7
+
8
+ export { messageMergePlugin };
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var meta_exports = {};
20
+ __export(meta_exports, {
21
+ metaPlugin: () => metaPlugin
22
+ });
23
+ module.exports = __toCommonJS(meta_exports);
24
+ var import__ = require('../index.cjs');
25
+ const toJsonSafe = (input) => {
26
+ if (input === null) {
27
+ return null;
28
+ }
29
+ if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
30
+ return input;
31
+ }
32
+ if (Array.isArray(input)) {
33
+ return input.map((value) => toJsonSafe(value));
34
+ }
35
+ if (typeof input === "object") {
36
+ const output = {};
37
+ for (const [key, value] of Object.entries(input)) {
38
+ const jsonValue = toJsonSafe(value);
39
+ if (jsonValue !== void 0) {
40
+ output[key] = jsonValue;
41
+ }
42
+ }
43
+ return output;
44
+ }
45
+ return void 0;
46
+ };
47
+ const isMetaRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
48
+ const metaPlugin = ({ hideWhenPublic = true } = {}) => import__.Error0.plugin().prop("meta", {
49
+ init: (input) => input,
50
+ resolve: ({ flow }) => {
51
+ const values = flow.filter(isMetaRecord);
52
+ if (values.length === 0) {
53
+ return void 0;
54
+ }
55
+ const merged = {};
56
+ for (const value of [...values].reverse()) {
57
+ Object.assign(merged, value);
58
+ }
59
+ return merged;
60
+ },
61
+ serialize: ({ resolved, isPublic }) => {
62
+ if (hideWhenPublic && isPublic) {
63
+ return void 0;
64
+ }
65
+ return toJsonSafe(resolved);
66
+ },
67
+ deserialize: ({ value }) => {
68
+ if (!isMetaRecord(value)) {
69
+ return void 0;
70
+ }
71
+ return value;
72
+ }
73
+ });
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ metaPlugin
77
+ });
78
+ //# sourceMappingURL=meta.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/meta.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\ntype Json = null | boolean | number | string | Json[] | { [key: string]: Json }\n\nconst toJsonSafe = (input: unknown): Json | undefined => {\n if (input === null) {\n return null\n }\n if (typeof input === 'string' || typeof input === 'number' || typeof input === 'boolean') {\n return input\n }\n if (Array.isArray(input)) {\n return input.map((value) => toJsonSafe(value)) as Json[]\n }\n if (typeof input === 'object') {\n const output: Record<string, Json> = {}\n for (const [key, value] of Object.entries(input as Record<string, unknown>)) {\n const jsonValue = toJsonSafe(value)\n if (jsonValue !== undefined) {\n output[key] = jsonValue\n }\n }\n return output\n }\n return undefined\n}\n\nconst isMetaRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value)\n\nexport const metaPlugin = ({ hideWhenPublic = true }: { hideWhenPublic?: boolean } = {}) =>\n Error0.plugin().prop('meta', {\n init: (input: Record<string, unknown>) => input,\n resolve: ({ flow }) => {\n const values = flow.filter(isMetaRecord)\n if (values.length === 0) {\n return undefined\n }\n\n // Merge cause meta into the current error; nearer errors win on conflicts.\n const merged: Record<string, unknown> = {}\n for (const value of [...values].reverse()) {\n Object.assign(merged, value)\n }\n return merged\n },\n serialize: ({ resolved, isPublic }) => {\n if (hideWhenPublic && isPublic) {\n return undefined\n }\n return toJsonSafe(resolved)\n },\n deserialize: ({ value }) => {\n if (!isMetaRecord(value)) {\n return undefined\n }\n return value\n },\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAIvB,MAAM,aAAa,CAAC,UAAqC;AACvD,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AACxF,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,IAAI,CAAC,UAAU,WAAW,KAAK,CAAC;AAAA,EAC/C;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAA+B,CAAC;AACtC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAgC,GAAG;AAC3E,YAAM,YAAY,WAAW,KAAK;AAClC,UAAI,cAAc,QAAW;AAC3B,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,eAAe,CAAC,UACpB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAE9D,MAAM,aAAa,CAAC,EAAE,iBAAiB,KAAK,IAAkC,CAAC,MACpF,gBAAO,OAAO,EAAE,KAAK,QAAQ;AAAA,EAC3B,MAAM,CAAC,UAAmC;AAAA,EAC1C,SAAS,CAAC,EAAE,KAAK,MAAM;AACrB,UAAM,SAAS,KAAK,OAAO,YAAY;AACvC,QAAI,OAAO,WAAW,GAAG;AACvB,aAAO;AAAA,IACT;AAGA,UAAM,SAAkC,CAAC;AACzC,eAAW,SAAS,CAAC,GAAG,MAAM,EAAE,QAAQ,GAAG;AACzC,aAAO,OAAO,QAAQ,KAAK;AAAA,IAC7B;AACA,WAAO;AAAA,EACT;AAAA,EACA,WAAW,CAAC,EAAE,UAAU,SAAS,MAAM;AACrC,QAAI,kBAAkB,UAAU;AAC9B,aAAO;AAAA,IACT;AACA,WAAO,WAAW,QAAQ;AAAA,EAC5B;AAAA,EACA,aAAa,CAAC,EAAE,MAAM,MAAM;AAC1B,QAAI,CAAC,aAAa,KAAK,GAAG;AACxB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACF,CAAC;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { PluginError0, ErrorPluginPropOptions, Error0 } from '../index.cjs';
2
+
3
+ declare const metaPlugin: ({ hideWhenPublic }?: {
4
+ hideWhenPublic?: boolean;
5
+ }) => PluginError0<Record<never, never> & Record<"meta", ErrorPluginPropOptions<Record<string, unknown>, Record<string, unknown>, Error0, Record<string, unknown> | undefined>>, Record<never, never>>;
6
+
7
+ export { metaPlugin };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var stack_merge_exports = {};
20
+ __export(stack_merge_exports, {
21
+ stackMergePlugin: () => stackMergePlugin
22
+ });
23
+ module.exports = __toCommonJS(stack_merge_exports);
24
+ var import__ = require('../index.cjs');
25
+ const stackMergePlugin = ({
26
+ hideWhenPublic = true,
27
+ delimiter = "\n"
28
+ } = {}) => import__.Error0.plugin().stack({
29
+ serialize: ({ error, isPublic }) => {
30
+ if (hideWhenPublic && isPublic) {
31
+ return void 0;
32
+ }
33
+ return error.causes().map((cause) => {
34
+ return cause instanceof Error ? cause.stack : void 0;
35
+ }).filter((value) => typeof value === "string").join(delimiter);
36
+ }
37
+ });
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ stackMergePlugin
41
+ });
42
+ //# sourceMappingURL=stack-merge.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/stack-merge.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nexport const stackMergePlugin = ({\n hideWhenPublic = true,\n delimiter = '\\n',\n}: { hideWhenPublic?: boolean; delimiter?: string } = {}) =>\n Error0.plugin().stack({\n serialize: ({ error, isPublic }) => {\n if (hideWhenPublic && isPublic) {\n return undefined\n }\n return error\n .causes()\n .map((cause) => {\n return cause instanceof Error ? cause.stack : undefined\n })\n .filter((value): value is string => typeof value === 'string')\n .join(delimiter)\n },\n })\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEhB,MAAM,mBAAmB,CAAC;AAAA,EAC/B,iBAAiB;AAAA,EACjB,YAAY;AACd,IAAsD,CAAC,MACrD,gBAAO,OAAO,EAAE,MAAM;AAAA,EACpB,WAAW,CAAC,EAAE,OAAO,SAAS,MAAM;AAClC,QAAI,kBAAkB,UAAU;AAC9B,aAAO;AAAA,IACT;AACA,WAAO,MACJ,OAAO,EACP,IAAI,CAAC,UAAU;AACd,aAAO,iBAAiB,QAAQ,MAAM,QAAQ;AAAA,IAChD,CAAC,EACA,OAAO,CAAC,UAA2B,OAAO,UAAU,QAAQ,EAC5D,KAAK,SAAS;AAAA,EACnB;AACF,CAAC;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { PluginError0 } from '../index.cjs';
2
+
3
+ declare const stackMergePlugin: ({ hideWhenPublic, delimiter, }?: {
4
+ hideWhenPublic?: boolean;
5
+ delimiter?: string;
6
+ }) => PluginError0<Record<never, never>, Record<never, never>>;
7
+
8
+ export { stackMergePlugin };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var status_exports = {};
20
+ __export(status_exports, {
21
+ statusPlugin: () => statusPlugin
22
+ });
23
+ module.exports = __toCommonJS(status_exports);
24
+ var import__ = require('../index.cjs');
25
+ const statusPlugin = ({
26
+ statuses,
27
+ strict = false
28
+ } = {}) => {
29
+ const statusValues = statuses ? Object.values(statuses) : void 0;
30
+ const isStatusValue = (value) => typeof value === "number" && (!statusValues || !strict || statusValues.includes(value));
31
+ const normalizeStatusValue = (value) => {
32
+ return isStatusValue(value) ? value : void 0;
33
+ };
34
+ const convertStatusValue = (value) => {
35
+ if (typeof value === "number") {
36
+ return normalizeStatusValue(value);
37
+ }
38
+ if (statuses && value in statuses) {
39
+ return statuses[value];
40
+ }
41
+ return void 0;
42
+ };
43
+ return import__.Error0.plugin().prop("status", {
44
+ init: (status) => convertStatusValue(status),
45
+ resolve: ({ flow }) => flow.find(Boolean),
46
+ serialize: ({ resolved }) => resolved,
47
+ deserialize: ({ value }) => typeof value === "number" ? value : void 0
48
+ });
49
+ };
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ statusPlugin
53
+ });
54
+ //# sourceMappingURL=status.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/status.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nexport const statusPlugin = <TStatuses extends Record<string, number> = Record<never, number>>({\n statuses,\n strict = false,\n}: { statuses?: TStatuses; strict?: boolean } = {}) => {\n const statusValues = statuses ? Object.values(statuses) : undefined\n const isStatusValue = (value: unknown): value is number =>\n typeof value === 'number' && (!statusValues || !strict || statusValues.includes(value))\n const normalizeStatusValue = (value: unknown): number | undefined => {\n return isStatusValue(value) ? value : undefined\n }\n const convertStatusValue = (value: number | string): number | undefined => {\n if (typeof value === 'number') {\n return normalizeStatusValue(value)\n }\n if (statuses && value in statuses) {\n return statuses[value as keyof TStatuses]\n }\n return undefined\n }\n\n return Error0.plugin().prop('status', {\n init: (status: number | Extract<keyof TStatuses, string>) => convertStatusValue(status),\n resolve: ({ flow }) => flow.find(Boolean),\n serialize: ({ resolved }) => resolved,\n deserialize: ({ value }) => (typeof value === 'number' ? value : undefined),\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEhB,MAAM,eAAe,CAAmE;AAAA,EAC7F;AAAA,EACA,SAAS;AACX,IAAgD,CAAC,MAAM;AACrD,QAAM,eAAe,WAAW,OAAO,OAAO,QAAQ,IAAI;AAC1D,QAAM,gBAAgB,CAAC,UACrB,OAAO,UAAU,aAAa,CAAC,gBAAgB,CAAC,UAAU,aAAa,SAAS,KAAK;AACvF,QAAM,uBAAuB,CAAC,UAAuC;AACnE,WAAO,cAAc,KAAK,IAAI,QAAQ;AAAA,EACxC;AACA,QAAM,qBAAqB,CAAC,UAA+C;AACzE,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,qBAAqB,KAAK;AAAA,IACnC;AACA,QAAI,YAAY,SAAS,UAAU;AACjC,aAAO,SAAS,KAAwB;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAEA,SAAO,gBAAO,OAAO,EAAE,KAAK,UAAU;AAAA,IACpC,MAAM,CAAC,WAAsD,mBAAmB,MAAM;AAAA,IACtF,SAAS,CAAC,EAAE,KAAK,MAAM,KAAK,KAAK,OAAO;AAAA,IACxC,WAAW,CAAC,EAAE,SAAS,MAAM;AAAA,IAC7B,aAAa,CAAC,EAAE,MAAM,MAAO,OAAO,UAAU,WAAW,QAAQ;AAAA,EACnE,CAAC;AACH;","names":[]}
@@ -0,0 +1,8 @@
1
+ import { PluginError0, ErrorPluginPropOptions, Error0 } from '../index.cjs';
2
+
3
+ declare const statusPlugin: <TStatuses extends Record<string, number> = Record<never, number>>({ statuses, strict, }?: {
4
+ statuses?: TStatuses;
5
+ strict?: boolean;
6
+ }) => PluginError0<Record<never, never> & Record<"status", ErrorPluginPropOptions<number | Extract<keyof TStatuses, string>, number | undefined, Error0, number | undefined>>, Record<never, never>>;
7
+
8
+ export { statusPlugin };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var tags_exports = {};
20
+ __export(tags_exports, {
21
+ tagsPlugin: () => tagsPlugin
22
+ });
23
+ module.exports = __toCommonJS(tags_exports);
24
+ var import__ = require('../index.cjs');
25
+ const tagsPlugin = ({
26
+ hideWhenPublic = true,
27
+ tags,
28
+ strict = true
29
+ } = {}) => {
30
+ function hasTag(error, tag, policy) {
31
+ const tags2 = error.tags;
32
+ if (!tags2) {
33
+ return false;
34
+ }
35
+ if (Array.isArray(tag)) {
36
+ if (policy === "every") {
37
+ return tag.every((item) => tags2.includes(item));
38
+ }
39
+ return tag.some((item) => tags2.includes(item));
40
+ }
41
+ return tags2.includes(tag);
42
+ }
43
+ const isTag = (value) => typeof value === "string" && (!tags || !strict || tags.includes(value));
44
+ return import__.Error0.plugin().prop("tags", {
45
+ init: (input) => input,
46
+ resolve: ({ flow }) => {
47
+ const merged = [];
48
+ for (const value of flow) {
49
+ if (Array.isArray(value)) {
50
+ merged.push(...value);
51
+ }
52
+ }
53
+ return merged.length > 0 ? Array.from(new Set(merged)) : void 0;
54
+ },
55
+ serialize: ({ resolved, isPublic }) => {
56
+ if (hideWhenPublic && isPublic) {
57
+ return void 0;
58
+ }
59
+ return resolved;
60
+ },
61
+ deserialize: ({ value }) => {
62
+ if (!Array.isArray(value)) {
63
+ return void 0;
64
+ }
65
+ return value.filter((item) => isTag(item));
66
+ }
67
+ }).method("hasTag", hasTag);
68
+ };
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ tagsPlugin
72
+ });
73
+ //# sourceMappingURL=tags.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/plugins/tags.ts"],"sourcesContent":["import { Error0 } from '../index.js'\n\nexport const tagsPlugin = <TTag extends string>({\n hideWhenPublic = true,\n tags,\n strict = true,\n}: { hideWhenPublic?: boolean; tags?: TTag[] | readonly TTag[]; strict?: boolean } = {}) => {\n function hasTag(error: Error0, tag: TTag): boolean\n function hasTag(error: Error0, tag: TTag[], policy: 'every' | 'some'): boolean\n function hasTag(error: Error0, tag: TTag | TTag[], policy?: 'every' | 'some'): boolean {\n const tags = (error as any).tags as string[] | undefined\n if (!tags) {\n return false\n }\n if (Array.isArray(tag)) {\n if (policy === 'every') {\n return tag.every((item) => tags.includes(item))\n }\n return tag.some((item) => tags.includes(item))\n }\n return tags.includes(tag)\n }\n const isTag = (value: unknown): value is TTag =>\n typeof value === 'string' && (!tags || !strict || tags.includes(value as TTag))\n return Error0.plugin()\n .prop('tags', {\n init: (input: string[]) => input,\n resolve: ({ flow }) => {\n const merged: string[] = []\n for (const value of flow) {\n if (Array.isArray(value)) {\n merged.push(...value)\n }\n }\n return merged.length > 0 ? Array.from(new Set(merged)) : undefined\n },\n serialize: ({ resolved, isPublic }) => {\n if (hideWhenPublic && isPublic) {\n return undefined\n }\n return resolved\n },\n deserialize: ({ value }) => {\n if (!Array.isArray(value)) {\n return undefined\n }\n return value.filter((item) => isTag(item))\n },\n })\n .method('hasTag', hasTag)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAuB;AAEhB,MAAM,aAAa,CAAsB;AAAA,EAC9C,iBAAiB;AAAA,EACjB;AAAA,EACA,SAAS;AACX,IAAqF,CAAC,MAAM;AAG1F,WAAS,OAAO,OAAe,KAAoB,QAAoC;AACrF,UAAMA,QAAQ,MAAc;AAC5B,QAAI,CAACA,OAAM;AACT,aAAO;AAAA,IACT;AACA,QAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,UAAI,WAAW,SAAS;AACtB,eAAO,IAAI,MAAM,CAAC,SAASA,MAAK,SAAS,IAAI,CAAC;AAAA,MAChD;AACA,aAAO,IAAI,KAAK,CAAC,SAASA,MAAK,SAAS,IAAI,CAAC;AAAA,IAC/C;AACA,WAAOA,MAAK,SAAS,GAAG;AAAA,EAC1B;AACA,QAAM,QAAQ,CAAC,UACb,OAAO,UAAU,aAAa,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,KAAa;AAC/E,SAAO,gBAAO,OAAO,EAClB,KAAK,QAAQ;AAAA,IACZ,MAAM,CAAC,UAAoB;AAAA,IAC3B,SAAS,CAAC,EAAE,KAAK,MAAM;AACrB,YAAM,SAAmB,CAAC;AAC1B,iBAAW,SAAS,MAAM;AACxB,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAO,KAAK,GAAG,KAAK;AAAA,QACtB;AAAA,MACF;AACA,aAAO,OAAO,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI;AAAA,IAC3D;AAAA,IACA,WAAW,CAAC,EAAE,UAAU,SAAS,MAAM;AACrC,UAAI,kBAAkB,UAAU;AAC9B,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IACA,aAAa,CAAC,EAAE,MAAM,MAAM;AAC1B,UAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,eAAO;AAAA,MACT;AACA,aAAO,MAAM,OAAO,CAAC,SAAS,MAAM,IAAI,CAAC;AAAA,IAC3C;AAAA,EACF,CAAC,EACA,OAAO,UAAU,MAAM;AAC5B;","names":["tags"]}
@@ -0,0 +1,12 @@
1
+ import { PluginError0, ErrorPluginPropOptions, Error0 } from '../index.cjs';
2
+
3
+ declare const tagsPlugin: <TTag extends string>({ hideWhenPublic, tags, strict, }?: {
4
+ hideWhenPublic?: boolean;
5
+ tags?: TTag[] | readonly TTag[];
6
+ strict?: boolean;
7
+ }) => PluginError0<Record<never, never> & Record<"tags", ErrorPluginPropOptions<string[], string[], Error0, string[] | undefined>>, Record<never, never> & Record<"hasTag", {
8
+ (error: Error0, tag: TTag): boolean;
9
+ (error: Error0, tag: TTag[], policy: "every" | "some"): boolean;
10
+ }>>;
11
+
12
+ export { tagsPlugin };