@distilled.cloud/core 0.30.3 → 1.0.0-rc.10

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 (216) hide show
  1. package/LICENSE +201 -0
  2. package/lib/api.d.ts +165 -0
  3. package/lib/api.d.ts.map +1 -0
  4. package/lib/api.js +190 -0
  5. package/lib/api.js.map +1 -0
  6. package/lib/category.d.ts +4 -4
  7. package/lib/category.js +4 -4
  8. package/lib/codegen/boolean-string-enums.d.ts +36 -0
  9. package/lib/codegen/boolean-string-enums.d.ts.map +1 -0
  10. package/lib/codegen/boolean-string-enums.js +94 -0
  11. package/lib/codegen/boolean-string-enums.js.map +1 -0
  12. package/lib/codegen/boolean-string-enums.test.d.ts +2 -0
  13. package/lib/codegen/boolean-string-enums.test.d.ts.map +1 -0
  14. package/lib/codegen/boolean-string-enums.test.js +147 -0
  15. package/lib/codegen/boolean-string-enums.test.js.map +1 -0
  16. package/lib/codegen/cli.d.ts +79 -0
  17. package/lib/codegen/cli.d.ts.map +1 -0
  18. package/lib/codegen/cli.js +149 -0
  19. package/lib/codegen/cli.js.map +1 -0
  20. package/lib/codegen/emit.d.ts +125 -0
  21. package/lib/codegen/emit.d.ts.map +1 -0
  22. package/lib/codegen/emit.js +101 -0
  23. package/lib/codegen/emit.js.map +1 -0
  24. package/lib/codegen/format.d.ts +23 -0
  25. package/lib/codegen/format.d.ts.map +1 -0
  26. package/lib/codegen/format.js +28 -0
  27. package/lib/codegen/format.js.map +1 -0
  28. package/lib/codegen/generator.d.ts +334 -0
  29. package/lib/codegen/generator.d.ts.map +1 -0
  30. package/lib/codegen/generator.js +813 -0
  31. package/lib/codegen/generator.js.map +1 -0
  32. package/lib/codegen/graph.d.ts +36 -0
  33. package/lib/codegen/graph.d.ts.map +1 -0
  34. package/lib/codegen/graph.js +136 -0
  35. package/lib/codegen/graph.js.map +1 -0
  36. package/lib/codegen/graphql-client.d.ts +62 -0
  37. package/lib/codegen/graphql-client.d.ts.map +1 -0
  38. package/lib/codegen/graphql-client.js +294 -0
  39. package/lib/codegen/graphql-client.js.map +1 -0
  40. package/lib/codegen/graphql-client.test.d.ts +2 -0
  41. package/lib/codegen/graphql-client.test.d.ts.map +1 -0
  42. package/lib/codegen/graphql-client.test.js +311 -0
  43. package/lib/codegen/graphql-client.test.js.map +1 -0
  44. package/lib/codegen/graphql.d.ts +207 -0
  45. package/lib/codegen/graphql.d.ts.map +1 -0
  46. package/lib/codegen/graphql.js +799 -0
  47. package/lib/codegen/graphql.js.map +1 -0
  48. package/lib/codegen/members.d.ts +25 -0
  49. package/lib/codegen/members.d.ts.map +1 -0
  50. package/lib/codegen/members.js +55 -0
  51. package/lib/codegen/members.js.map +1 -0
  52. package/lib/codegen/naming.d.ts +29 -0
  53. package/lib/codegen/naming.d.ts.map +1 -0
  54. package/lib/codegen/naming.js +74 -0
  55. package/lib/codegen/naming.js.map +1 -0
  56. package/lib/codegen/openapi-cli.d.ts +52 -0
  57. package/lib/codegen/openapi-cli.d.ts.map +1 -0
  58. package/lib/codegen/openapi-cli.js +109 -0
  59. package/lib/codegen/openapi-cli.js.map +1 -0
  60. package/lib/codegen/openapi.d.ts +178 -0
  61. package/lib/codegen/openapi.d.ts.map +1 -0
  62. package/lib/codegen/openapi.js +1377 -0
  63. package/lib/codegen/openapi.js.map +1 -0
  64. package/lib/codegen/operations.d.ts +24 -0
  65. package/lib/codegen/operations.d.ts.map +1 -0
  66. package/lib/codegen/operations.js +56 -0
  67. package/lib/codegen/operations.js.map +1 -0
  68. package/lib/codegen/pagination.d.ts +39 -0
  69. package/lib/codegen/pagination.d.ts.map +1 -0
  70. package/lib/codegen/pagination.js +33 -0
  71. package/lib/codegen/pagination.js.map +1 -0
  72. package/lib/codegen/patches.d.ts +65 -0
  73. package/lib/codegen/patches.d.ts.map +1 -0
  74. package/lib/codegen/patches.js +236 -0
  75. package/lib/codegen/patches.js.map +1 -0
  76. package/lib/codegen/patches.test.d.ts +2 -0
  77. package/lib/codegen/patches.test.d.ts.map +1 -0
  78. package/lib/codegen/patches.test.js +105 -0
  79. package/lib/codegen/patches.test.js.map +1 -0
  80. package/lib/codegen/prelude.d.ts +15 -0
  81. package/lib/codegen/prelude.d.ts.map +1 -0
  82. package/lib/codegen/prelude.js +60 -0
  83. package/lib/codegen/prelude.js.map +1 -0
  84. package/lib/codegen/proto.d.ts +121 -0
  85. package/lib/codegen/proto.d.ts.map +1 -0
  86. package/lib/codegen/proto.js +962 -0
  87. package/lib/codegen/proto.js.map +1 -0
  88. package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
  89. package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
  90. package/lib/codegen/rewrite-operation-ids.js +1079 -0
  91. package/lib/codegen/rewrite-operation-ids.js.map +1 -0
  92. package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
  93. package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
  94. package/lib/codegen/rewrite-operation-ids.test.js +533 -0
  95. package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
  96. package/lib/codegen/spec-path.d.ts +16 -0
  97. package/lib/codegen/spec-path.d.ts.map +1 -0
  98. package/lib/codegen/spec-path.js +101 -0
  99. package/lib/codegen/spec-path.js.map +1 -0
  100. package/lib/error-category.d.ts +28 -0
  101. package/lib/error-category.d.ts.map +1 -0
  102. package/lib/error-category.js +46 -0
  103. package/lib/error-category.js.map +1 -0
  104. package/lib/errors.d.ts +1 -0
  105. package/lib/errors.d.ts.map +1 -1
  106. package/lib/errors.js +18 -13
  107. package/lib/errors.js.map +1 -1
  108. package/lib/graphql.d.ts +284 -0
  109. package/lib/graphql.d.ts.map +1 -0
  110. package/lib/graphql.fixture.d.ts +249 -0
  111. package/lib/graphql.fixture.d.ts.map +1 -0
  112. package/lib/graphql.fixture.js +240 -0
  113. package/lib/graphql.fixture.js.map +1 -0
  114. package/lib/graphql.js +718 -0
  115. package/lib/graphql.js.map +1 -0
  116. package/lib/graphql.test.d.ts +2 -0
  117. package/lib/graphql.test.d.ts.map +1 -0
  118. package/lib/graphql.test.js +780 -0
  119. package/lib/graphql.test.js.map +1 -0
  120. package/lib/graphql.types.d.ts +2 -0
  121. package/lib/graphql.types.d.ts.map +1 -0
  122. package/lib/graphql.types.js +45 -0
  123. package/lib/graphql.types.js.map +1 -0
  124. package/lib/json-patch.d.ts +30 -30
  125. package/lib/json-patch.d.ts.map +1 -1
  126. package/lib/json-patch.js +73 -107
  127. package/lib/json-patch.js.map +1 -1
  128. package/lib/pagination.d.ts +77 -51
  129. package/lib/pagination.d.ts.map +1 -1
  130. package/lib/pagination.js +162 -94
  131. package/lib/pagination.js.map +1 -1
  132. package/lib/protocol-http.d.ts +74 -0
  133. package/lib/protocol-http.d.ts.map +1 -0
  134. package/lib/protocol-http.js +590 -0
  135. package/lib/protocol-http.js.map +1 -0
  136. package/lib/protocol-http.test.d.ts +2 -0
  137. package/lib/protocol-http.test.d.ts.map +1 -0
  138. package/lib/protocol-http.test.js +88 -0
  139. package/lib/protocol-http.test.js.map +1 -0
  140. package/lib/protocol-rest.d.ts +134 -0
  141. package/lib/protocol-rest.d.ts.map +1 -0
  142. package/lib/protocol-rest.js +256 -0
  143. package/lib/protocol-rest.js.map +1 -0
  144. package/lib/retry.d.ts +8 -2
  145. package/lib/retry.d.ts.map +1 -1
  146. package/lib/retry.js +22 -16
  147. package/lib/retry.js.map +1 -1
  148. package/lib/schema.d.ts +8 -9
  149. package/lib/schema.d.ts.map +1 -1
  150. package/lib/schema.js +8 -9
  151. package/lib/schema.js.map +1 -1
  152. package/lib/trait.d.ts +174 -0
  153. package/lib/trait.d.ts.map +1 -0
  154. package/lib/trait.js +123 -0
  155. package/lib/trait.js.map +1 -0
  156. package/package.json +24 -78
  157. package/src/api.ts +460 -0
  158. package/src/category.ts +4 -4
  159. package/src/codegen/boolean-string-enums.test.ts +168 -0
  160. package/src/codegen/boolean-string-enums.ts +106 -0
  161. package/src/codegen/cli.ts +285 -0
  162. package/src/codegen/emit.ts +203 -0
  163. package/src/codegen/format.ts +47 -0
  164. package/src/codegen/generator.ts +1283 -0
  165. package/src/codegen/graph.ts +151 -0
  166. package/src/codegen/graphql-client.test.ts +386 -0
  167. package/src/codegen/graphql-client.ts +419 -0
  168. package/src/codegen/graphql.ts +1217 -0
  169. package/src/codegen/members.ts +71 -0
  170. package/src/codegen/naming.ts +86 -0
  171. package/src/codegen/openapi-cli.ts +182 -0
  172. package/src/codegen/openapi.ts +1689 -0
  173. package/src/codegen/operations.ts +76 -0
  174. package/src/codegen/pagination.ts +71 -0
  175. package/src/codegen/patches.test.ts +130 -0
  176. package/src/codegen/patches.ts +291 -0
  177. package/src/codegen/prelude.ts +70 -0
  178. package/src/codegen/proto.ts +1128 -0
  179. package/src/codegen/rewrite-operation-ids.test.ts +563 -0
  180. package/src/codegen/rewrite-operation-ids.ts +1206 -0
  181. package/src/codegen/spec-path.ts +115 -0
  182. package/src/error-category.ts +84 -0
  183. package/src/errors.ts +22 -25
  184. package/src/graphql.fixture.ts +371 -0
  185. package/src/graphql.test.ts +974 -0
  186. package/src/graphql.ts +1321 -0
  187. package/src/graphql.types.ts +185 -0
  188. package/src/json-patch.ts +95 -122
  189. package/src/pagination.ts +217 -146
  190. package/src/protocol-http.test.ts +107 -0
  191. package/src/protocol-http.ts +735 -0
  192. package/src/protocol-rest.ts +391 -0
  193. package/src/retry.ts +21 -22
  194. package/src/schema.ts +9 -10
  195. package/src/trait.ts +274 -0
  196. package/README.md +0 -30
  197. package/lib/client.d.ts +0 -167
  198. package/lib/client.d.ts.map +0 -1
  199. package/lib/client.js +0 -659
  200. package/lib/client.js.map +0 -1
  201. package/lib/schemas.d.ts +0 -60
  202. package/lib/schemas.d.ts.map +0 -1
  203. package/lib/schemas.js +0 -79
  204. package/lib/schemas.js.map +0 -1
  205. package/lib/sensitive.d.ts +0 -71
  206. package/lib/sensitive.d.ts.map +0 -1
  207. package/lib/sensitive.js +0 -96
  208. package/lib/sensitive.js.map +0 -1
  209. package/lib/traits.d.ts +0 -421
  210. package/lib/traits.d.ts.map +0 -1
  211. package/lib/traits.js +0 -737
  212. package/lib/traits.js.map +0 -1
  213. package/src/client.ts +0 -1177
  214. package/src/schemas.ts +0 -128
  215. package/src/sensitive.ts +0 -119
  216. package/src/traits.ts +0 -996
@@ -0,0 +1,16 @@
1
+ /** Set to a non-empty value to read specs from `specs/.local` instead. */
2
+ export declare const LOCAL_ENV = "DISTILLED_SPECS_LOCAL";
3
+ /** The local working copy of a mirror, relative to a package root. */
4
+ export declare const LOCAL_DIR: string;
5
+ /** Repository name of the mirror feeding `packages/<pkg>`. */
6
+ export declare const mirrorRepositoryName: (pkg: string) => string;
7
+ /** Whether this process reads specs from `specs/.local`. */
8
+ export declare const isLocalSpecs: () => boolean;
9
+ /**
10
+ * Resolve a package-relative spec path to an absolute one.
11
+ *
12
+ * @param root absolute package root (`path.resolve(import.meta.dir, "..")`)
13
+ * @param specPath the production path, relative to `root` (or absolute)
14
+ */
15
+ export declare const resolveSpecPath: (root: string, specPath: string) => string;
16
+ //# sourceMappingURL=spec-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-path.d.ts","sourceRoot":"","sources":["../../src/codegen/spec-path.ts"],"names":[],"mappings":"AAoCA,0EAA0E;AAC1E,eAAO,MAAM,SAAS,0BAA0B,CAAC;AAEjD,sEAAsE;AACtE,eAAO,MAAM,SAAS,QAA+B,CAAC;AAEtD,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,QAAS,MAAM,WAAyB,CAAC;AAE1E,4DAA4D;AAC5D,eAAO,MAAM,YAAY,QAAO,OACc,CAAC;AAyB/C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,YAAY,MAAM,KAAG,MAoChE,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Spec path resolution — the seam between a production spec mirror and a
3
+ * local working copy of one (dev-time only).
4
+ *
5
+ * Every SDK package reads its specs from `packages/<pkg>/specs/`. In
6
+ * production that directory holds a submodule of the package's mirror
7
+ * repository, `distilled-mirror/spec-mirror-<pkg>`, whose layout is fixed:
8
+ *
9
+ * packages/<pkg>/specs/spec-mirror-<pkg>/
10
+ * ├── .meta/ fetch-specs.ts + its package.json
11
+ * └── specs/ what the generator reads
12
+ *
13
+ * A contributor adding a provider cannot create that repository — it lives in
14
+ * an org they have no write access to, and it is only created once the
15
+ * `distilled-submodules` stack deploys on merge to main. So `pnpm specs:local
16
+ * <pkg>` runs the same `fetch-specs.ts` into a gitignored directory shaped
17
+ * exactly like the mirror:
18
+ *
19
+ * packages/<pkg>/specs/.local/
20
+ * ├── .meta/
21
+ * └── specs/
22
+ *
23
+ * Setting {@link LOCAL_ENV} then re-roots every spec read into it. Nothing in
24
+ * the package's source changes — the `specPath` a `convert.ts` declares stays
25
+ * the production one — so there is no `.local` reference that could be
26
+ * committed by accident, and the switch is impossible to leave on: it lives
27
+ * in the environment of one command, never in a file.
28
+ *
29
+ * The opt-in is deliberate rather than a fallback-when-missing. A silent
30
+ * fallback would regenerate an SDK from a stale `.local` copy the moment a
31
+ * submodule failed to check out, and the result — committed, formatted,
32
+ * plausible — would be indistinguishable from a real regeneration.
33
+ */
34
+ import * as fs from "node:fs";
35
+ import * as path from "node:path";
36
+ /** Set to a non-empty value to read specs from `specs/.local` instead. */
37
+ export const LOCAL_ENV = "DISTILLED_SPECS_LOCAL";
38
+ /** The local working copy of a mirror, relative to a package root. */
39
+ export const LOCAL_DIR = path.join("specs", ".local");
40
+ /** Repository name of the mirror feeding `packages/<pkg>`. */
41
+ export const mirrorRepositoryName = (pkg) => `spec-mirror-${pkg}`;
42
+ /** Whether this process reads specs from `specs/.local`. */
43
+ export const isLocalSpecs = () => (process.env[LOCAL_ENV] ?? "").trim() !== "";
44
+ let announced = false;
45
+ /**
46
+ * The path within a mirror's `specs/` directory that `specPath` names.
47
+ *
48
+ * Spec paths take one of two shapes — `specs/<mirror>/specs/<tail>` for a
49
+ * submodule and `specs/<tail>` for a committed file — and in both the tail is
50
+ * everything after the LAST `specs` segment. That one rule covers the
51
+ * submodule form, the committed form, the nested forms
52
+ * (`specs/<mirror>/specs/models/<service>/...`) and the directory form
53
+ * (`specs/<mirror>/specs`, whose tail is empty — the mirror's `specs/`
54
+ * directory itself) without needing to know which it was handed.
55
+ *
56
+ * `undefined` means there is no `specs` segment at all, which local mode
57
+ * cannot interpret.
58
+ */
59
+ const tailWithinSpecs = (specPath) => {
60
+ const segments = specPath.split(/[/\\]/).filter((s) => s !== "" && s !== ".");
61
+ const last = segments.lastIndexOf("specs");
62
+ if (last === -1)
63
+ return undefined;
64
+ return segments.slice(last + 1).join(path.sep);
65
+ };
66
+ /**
67
+ * Resolve a package-relative spec path to an absolute one.
68
+ *
69
+ * @param root absolute package root (`path.resolve(import.meta.dir, "..")`)
70
+ * @param specPath the production path, relative to `root` (or absolute)
71
+ */
72
+ export const resolveSpecPath = (root, specPath) => {
73
+ const production = path.resolve(root, specPath);
74
+ if (!isLocalSpecs() || path.isAbsolute(specPath))
75
+ return production;
76
+ const tail = tailWithinSpecs(specPath);
77
+ if (tail === undefined) {
78
+ throw new Error(`${LOCAL_ENV} is set, but "${specPath}" has no \`specs/\` segment to ` +
79
+ `re-root. Local mode only understands paths under the package's ` +
80
+ `specs/ directory.`);
81
+ }
82
+ if (!announced) {
83
+ announced = true;
84
+ // stderr, not stdout: generate-all captures stdout per package and only
85
+ // prints it on failure, and this is exactly the line you need to see on
86
+ // a run that succeeded against the wrong specs.
87
+ console.error(`⚠ ${LOCAL_ENV} — reading specs from ${LOCAL_DIR}, not the mirror submodule.`);
88
+ }
89
+ const local = path.join(root, LOCAL_DIR, "specs", tail);
90
+ if (!fs.existsSync(local)) {
91
+ // A missing local spec is a setup mistake, not a generator bug, and the
92
+ // ENOENT the caller would otherwise raise names a path nobody recognises.
93
+ throw new Error(`${local} does not exist. Materialise this package's mirror first:\n` +
94
+ ` pnpm specs:local ${path.basename(root)}\n` +
95
+ `If that succeeds and this path is still missing, the package's ` +
96
+ `declared spec path (${specPath}) is not mirror-shaped yet — it must ` +
97
+ `read \`specs/<mirror>/specs/<file>\` for local mode to find it.`);
98
+ }
99
+ return local;
100
+ };
101
+ //# sourceMappingURL=spec-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-path.js","sourceRoot":"","sources":["../../src/codegen/spec-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAEjD,sEAAsE;AACtE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC;AAE1E,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE,CACxC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAE/C,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB;;;;;;;;;;;;;GAaG;AACH,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAsB,EAAE;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAU,EAAE;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IAEpE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,iBAAiB,QAAQ,iCAAiC;YACpE,iEAAiE;YACjE,mBAAmB,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,IAAI,CAAC;QACjB,wEAAwE;QACxE,wEAAwE;QACxE,gDAAgD;QAChD,OAAO,CAAC,KAAK,CACX,MAAM,SAAS,yBAAyB,SAAS,6BAA6B,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,6DAA6D;YACnE,sBAAsB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;YAC7C,iEAAiE;YACjE,uBAAuB,QAAQ,uCAAuC;YACtE,iEAAiE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Effect } from "effect";
2
+ export declare const categoriesKey = "@distilled/meta/error-categories";
3
+ export declare const withCategory: <Categories extends Array<PropertyKey>>(...categories: Categories) => <Args extends Array<any>, Ret, C extends {
4
+ new (...args: Args): Ret;
5
+ }>(C: C) => C & {
6
+ new (...args: Args): Ret & {
7
+ [categoriesKey]: { [Cat in Categories[number]]: true; };
8
+ };
9
+ };
10
+ export type AllKeys<E> = E extends {
11
+ [categoriesKey]: infer Q;
12
+ } ? keyof Q : never;
13
+ export type ExtractAll<E, Cats extends PropertyKey> = Cats extends any ? Extract<E, {
14
+ [categoriesKey]: {
15
+ [K in Cats]: any;
16
+ };
17
+ }> : never;
18
+ /**
19
+ * Runtime check: does `value` carry the given category?
20
+ * Works on instances tagged via `withCategory(...)`.
21
+ */
22
+ export declare const hasCategory: <const Cat extends PropertyKey>(category: Cat) => (value: unknown) => value is {
23
+ readonly [categoriesKey]: { readonly [K in Cat]: true; };
24
+ };
25
+ /** True if `value` has any of the given categories. */
26
+ export declare const hasAnyCategory: (...categories: ReadonlyArray<PropertyKey>) => (value: unknown) => boolean;
27
+ export declare const catchCategory: <E, const Categories extends Array<AllKeys<E>>, A2, E2, R2>(...args: [...Categories, f: (err: ExtractAll<E, Categories[number]>) => Effect.Effect<A2, E2, R2>]) => <A, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A | A2, E2 | Exclude<E, ExtractAll<E, Categories[number]>>, R | R2>;
28
+ //# sourceMappingURL=error-category.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-category.d.ts","sourceRoot":"","sources":["../src/error-category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAE3C,eAAO,MAAM,aAAa,qCAAqC,CAAC;AAEhE,eAAO,MAAM,YAAY,GACtB,UAAU,SAAS,KAAK,CAAC,WAAW,CAAC,iBAAiB,UAAU,MAChE,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,CAAA;CAAE,KAChE,CAAC,KACH,CAAC,GAAG;IACL,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,GAAG;QACzB,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,GAAE,CAAC;KACxD,CAAC;CAeH,CAAC;AAEJ,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3D,MAAM,CAAC,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,SAAS,WAAW,IAAI,IAAI,SAAS,GAAG,GAClE,OAAO,CAAC,CAAC,EAAE;IAAE,CAAC,aAAa,CAAC,EAAE;SAAG,CAAC,IAAI,IAAI,GAAG,GAAG;KAAE,CAAA;CAAE,CAAC,GACrD,KAAK,CAAC;AAEV;;;GAGG;AACH,eAAO,MAAM,WAAW,GACrB,KAAK,CAAC,GAAG,SAAS,WAAW,YAAY,GAAG,aAEpC,OAAO,KACb,KAAK,IAAI;IAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,GAAG,GAAG,IAAI,GAAE,CAAA;CAIpE,CAAC;AAEJ,uDAAuD;AACvD,eAAO,MAAM,cAAc,kBACT,aAAa,CAAC,WAAW,CAAC,aAClC,OAAO,KAAG,OAMjB,CAAC;AAEJ,eAAO,MAAM,aAAa,GACvB,CAAC,EAAE,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAC/C,CACP,GAAG,UAAU,EACb,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CACzE,MAEF,CAAC,EAAE,CAAC,UACK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CACd,CAAC,GAAG,EAAE,EACN,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAClD,CAAC,GAAG,EAAE,CAUP,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { Effect, Predicate } from "effect";
2
+ export const categoriesKey = "@distilled/meta/error-categories";
3
+ export const withCategory = (...categories) => (C) => {
4
+ // @ts-expect-error
5
+ const Mixed = class extends C {
6
+ };
7
+ for (const category of categories) {
8
+ if (!(categoriesKey in Mixed.prototype)) {
9
+ // @ts-expect-error
10
+ Mixed.prototype[categoriesKey] = {};
11
+ }
12
+ // @ts-expect-error
13
+ Mixed.prototype[categoriesKey][category] = true;
14
+ }
15
+ return Mixed;
16
+ };
17
+ /**
18
+ * Runtime check: does `value` carry the given category?
19
+ * Works on instances tagged via `withCategory(...)`.
20
+ */
21
+ export const hasCategory = (category) => (value) => {
22
+ if (!Predicate.isObject(value))
23
+ return false;
24
+ if (!Predicate.hasProperty(categoriesKey)(value))
25
+ return false;
26
+ return category in value[categoriesKey];
27
+ };
28
+ /** True if `value` has any of the given categories. */
29
+ export const hasAnyCategory = (...categories) => (value) => {
30
+ if (!Predicate.isObject(value))
31
+ return false;
32
+ if (!Predicate.hasProperty(categoriesKey)(value))
33
+ return false;
34
+ const cats = value[categoriesKey];
35
+ for (const c of categories)
36
+ if (c in cats)
37
+ return true;
38
+ return false;
39
+ };
40
+ export const catchCategory = (...args) => (effect) => {
41
+ const f = args.pop();
42
+ const categories = args;
43
+ const matches = hasAnyCategory(...categories);
44
+ return Effect.catchIf(effect, matches, (e) => f(e));
45
+ };
46
+ //# sourceMappingURL=error-category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-category.js","sourceRoot":"","sources":["../src/error-category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG,kCAAkC,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GACvB,CAAwC,GAAG,UAAsB,EAAE,EAAE,CACrE,CACE,CAAI,EAKJ,EAAE;IACF,mBAAmB;IACnB,MAAM,KAAK,GAAG,KAAM,SAAQ,CAAC;KAAG,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,mBAAmB;YACnB,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QACtC,CAAC;QACD,mBAAmB;QACnB,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,OAAO,KAAY,CAAC;AACtB,CAAC,CAAC;AAUJ;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GACtB,CAAgC,QAAa,EAAE,EAAE,CACjD,CACE,KAAc,EACwD,EAAE;IACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,QAAQ,IAAK,KAAa,CAAC,aAAa,CAAC,CAAC;AACnD,CAAC,CAAC;AAEJ,uDAAuD;AACvD,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,GAAG,UAAsC,EAAE,EAAE,CAC9C,CAAC,KAAc,EAAW,EAAE;IAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,MAAM,IAAI,GAAI,KAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,aAAa,GACxB,CACE,GAAG,IAGF,EACD,EAAE,CACJ,CACE,MAA8B,EAK9B,EAAE;IACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAEY,CAAC;IAC/B,MAAM,UAAU,GAAG,IAA0B,CAAC;IAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAC3C,CAAC,CAAC,CAAsC,CAAC,CACnC,CAAC;AACX,CAAC,CAAC"}
package/lib/errors.d.ts CHANGED
@@ -241,5 +241,6 @@ export declare const API_ERRORS: readonly [typeof Unauthorized, typeof Forbidden
241
241
  */
242
242
  export declare const DEFAULT_ERRORS: readonly [typeof Unauthorized, typeof TooManyRequests, typeof InternalServerError, typeof BadGateway, typeof ServiceUnavailable, typeof GatewayTimeout];
243
243
  export type DefaultErrors = InstanceType<(typeof DEFAULT_ERRORS)[number]>;
244
+ export declare const RETRYABLE: "@distilled/errors/retryable";
244
245
  export {};
245
246
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAM1C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,sDAE1B,CAAC;;;;;;;;AAMF;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAGJ;CAAG;;;;;;;;AAEjC;;GAEG;AACH,qBAAa,SAAU,SAAQ,cAGD;CAAG;;;;;;;;AAEjC;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAEK;CAAG;;;;;;;;AAEtC;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAGI;CAAG;;;;;;;;AAEvC;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAEK;CAAG;;;;;;;;AAEtC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGL;CAAG;;;;;;;;;;;AAEvC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBASpC;CAAG;;;;;;;;;;;AAEJ;;GAEG;AACH,qBAAa,MAAO,SAAQ,WAG+B;CAAG;;;;;;;;;;;;AAE9D;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,wBAOiB;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAM0B;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,uBAMkB;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAMsB;CAAG;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAGM;CAAG;AAM1C;;GAEG;AACH,eAAO,MAAM,eAAe;aAC1B,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;CACK,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,aAA0C,CAAC;AAE9E;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,aAA0C,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,UAAU,2QAab,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc,yJAOjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAM1C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,sDAE1B,CAAC;;;;;;;;AAMF;;GAEG;AACH,qBAAa,YAAa,SAAQ,iBAGJ;CAAG;;;;;;;;AAEjC;;GAEG;AACH,qBAAa,SAAU,SAAQ,cAEA;CAAG;;;;;;;;AAElC;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAEK;CAAG;;;;;;;;AAEtC;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAEK;CAAG;;;;;;;;AAExC;;GAEG;AACH,qBAAa,QAAS,SAAQ,aAEK;CAAG;;;;;;;;AAEtC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,wBAGL;CAAG;;;;;;;;;;;AAEvC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBASpC;CAAG;;;;;;;;;;;AAEJ;;GAEG;AACH,qBAAa,MAAO,SAAQ,WAG+B;CAAG;;;;;;;;;;;;AAE9D;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,wBAOiB;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAG2B;CAAG;;;;;;;;;;;AAE9D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,uBAMkB;CAAG;;;;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAMsB;CAAG;;;;;;;;AAE7D;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAGM;CAAG;AAM1C;;GAEG;AACH,eAAO,MAAM,eAAe;aAC1B,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;aACH,GAAG;CACK,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,aAA0C,CAAC;AAE9E;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,aAA0C,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,UAAU,2QAab,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,cAAc,yJAOjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1E,eAAO,MAAM,SAAS,EAAG,6BAAsC,CAAC"}
package/lib/errors.js CHANGED
@@ -27,41 +27,45 @@ export const DurationSchema = Schema.declare(Duration.isDuration);
27
27
  /**
28
28
  * Unauthorized - Authentication failure (401).
29
29
  */
30
- export class Unauthorized extends Schema.TaggedErrorClass()("Unauthorized", { message: Schema.String }).pipe(Category.withAuthError) {
30
+ export class Unauthorized extends Schema.TaggedError()("Unauthorized", { message: Schema.String }).pipe(Category.withAuthError) {
31
31
  }
32
32
  /**
33
33
  * Forbidden - Access denied (403).
34
34
  */
35
- export class Forbidden extends Schema.TaggedErrorClass()("Forbidden", { message: Schema.String }).pipe(Category.withAuthError) {
35
+ export class Forbidden extends Schema.TaggedError()("Forbidden", {
36
+ message: Schema.String,
37
+ }).pipe(Category.withAuthError) {
36
38
  }
37
39
  /**
38
40
  * NotFound - Resource not found (404).
39
41
  */
40
- export class NotFound extends Schema.TaggedErrorClass()("NotFound", {
42
+ export class NotFound extends Schema.TaggedError()("NotFound", {
41
43
  message: Schema.String,
42
44
  }).pipe(Category.withNotFoundError) {
43
45
  }
44
46
  /**
45
47
  * BadRequest - Invalid request (400).
46
48
  */
47
- export class BadRequest extends Schema.TaggedErrorClass()("BadRequest", { message: Schema.String }).pipe(Category.withBadRequestError) {
49
+ export class BadRequest extends Schema.TaggedError()("BadRequest", {
50
+ message: Schema.String,
51
+ }).pipe(Category.withBadRequestError) {
48
52
  }
49
53
  /**
50
54
  * Conflict - Resource conflict (409).
51
55
  */
52
- export class Conflict extends Schema.TaggedErrorClass()("Conflict", {
56
+ export class Conflict extends Schema.TaggedError()("Conflict", {
53
57
  message: Schema.String,
54
58
  }).pipe(Category.withConflictError) {
55
59
  }
56
60
  /**
57
61
  * UnprocessableEntity - Validation error (422).
58
62
  */
59
- export class UnprocessableEntity extends Schema.TaggedErrorClass()("UnprocessableEntity", { message: Schema.String }).pipe(Category.withBadRequestError) {
63
+ export class UnprocessableEntity extends Schema.TaggedError()("UnprocessableEntity", { message: Schema.String }).pipe(Category.withBadRequestError) {
60
64
  }
61
65
  /**
62
66
  * TooManyRequests - Rate limited (429).
63
67
  */
64
- export class TooManyRequests extends Schema.TaggedErrorClass()("TooManyRequests", {
68
+ export class TooManyRequests extends Schema.TaggedError()("TooManyRequests", {
65
69
  message: Schema.String,
66
70
  retryAfter: Schema.optional(DurationSchema),
67
71
  }).pipe(Category.withThrottlingError, Category.withRetryable({ throttling: true })) {
@@ -69,7 +73,7 @@ export class TooManyRequests extends Schema.TaggedErrorClass()("TooManyRequests"
69
73
  /**
70
74
  * Locked - Resource locked (423).
71
75
  */
72
- export class Locked extends Schema.TaggedErrorClass()("Locked", {
76
+ export class Locked extends Schema.TaggedError()("Locked", {
73
77
  message: Schema.String,
74
78
  retryAfter: Schema.optional(DurationSchema),
75
79
  }).pipe(Category.withLockedError, Category.withRetryable()) {
@@ -82,7 +86,7 @@ export class Locked extends Schema.TaggedErrorClass()("Locked", {
82
86
  * 200 envelope carrying `{ code: 10002, message: "An unknown error has
83
87
  * occurred" }` for transient backend failures on some endpoints).
84
88
  */
85
- export class InternalServerError extends Schema.TaggedErrorClass()("InternalServerError", {
89
+ export class InternalServerError extends Schema.TaggedError()("InternalServerError", {
86
90
  message: Schema.String,
87
91
  code: Schema.optional(Schema.Number),
88
92
  retryAfter: Schema.optional(DurationSchema),
@@ -91,7 +95,7 @@ export class InternalServerError extends Schema.TaggedErrorClass()("InternalServ
91
95
  /**
92
96
  * BadGateway - Bad gateway (502).
93
97
  */
94
- export class BadGateway extends Schema.TaggedErrorClass()("BadGateway", {
98
+ export class BadGateway extends Schema.TaggedError()("BadGateway", {
95
99
  message: Schema.String,
96
100
  retryAfter: Schema.optional(DurationSchema),
97
101
  }).pipe(Category.withServerError, Category.withRetryable()) {
@@ -99,7 +103,7 @@ export class BadGateway extends Schema.TaggedErrorClass()("BadGateway", {
99
103
  /**
100
104
  * ServiceUnavailable - Service unavailable (503).
101
105
  */
102
- export class ServiceUnavailable extends Schema.TaggedErrorClass()("ServiceUnavailable", {
106
+ export class ServiceUnavailable extends Schema.TaggedError()("ServiceUnavailable", {
103
107
  message: Schema.String,
104
108
  retryAfter: Schema.optional(DurationSchema),
105
109
  }).pipe(Category.withServerError, Category.withRetryable()) {
@@ -107,7 +111,7 @@ export class ServiceUnavailable extends Schema.TaggedErrorClass()("ServiceUnavai
107
111
  /**
108
112
  * GatewayTimeout - Gateway timeout (504).
109
113
  */
110
- export class GatewayTimeout extends Schema.TaggedErrorClass()("GatewayTimeout", {
114
+ export class GatewayTimeout extends Schema.TaggedError()("GatewayTimeout", {
111
115
  message: Schema.String,
112
116
  retryAfter: Schema.optional(DurationSchema),
113
117
  }).pipe(Category.withServerError, Category.withRetryable()) {
@@ -115,7 +119,7 @@ export class GatewayTimeout extends Schema.TaggedErrorClass()("GatewayTimeout",
115
119
  /**
116
120
  * Configuration error - missing or invalid configuration.
117
121
  */
118
- export class ConfigError extends Schema.TaggedErrorClass()("ConfigError", { message: Schema.String }).pipe(Category.withConfigurationError) {
122
+ export class ConfigError extends Schema.TaggedError()("ConfigError", { message: Schema.String }).pipe(Category.withConfigurationError) {
119
123
  }
120
124
  // ============================================================================
121
125
  // Error Maps
@@ -182,4 +186,5 @@ export const DEFAULT_ERRORS = [
182
186
  ServiceUnavailable,
183
187
  GatewayTimeout,
184
188
  ];
189
+ export const RETRYABLE = "@distilled/errors/retryable";
185
190
  //# sourceMappingURL=errors.js.map
package/lib/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}