@stigmer/server 3.38.1 → 3.38.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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pipeline/errors.d.ts +12 -13
- package/dist/pipeline/errors.d.ts.map +1 -1
- package/dist/pipeline/errors.js +29 -3
- package/dist/pipeline/errors.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +2 -0
- package/src/pipeline/__tests__/errors.test.ts +72 -0
- package/src/pipeline/errors.ts +42 -3
package/dist/index.d.ts
CHANGED
|
@@ -103,7 +103,8 @@ export { createErrorBoundaryInterceptor } from "./pipeline/interceptors/error-bo
|
|
|
103
103
|
export { diffVisibilityShapes, resolveResourceCreatedEvent, visibilityShapesFor, } from "./pipeline/steps/authorization-tuples.js";
|
|
104
104
|
export type { PipelineStep } from "./pipeline/pipeline.js";
|
|
105
105
|
export { RequestContext } from "./pipeline/request-context.js";
|
|
106
|
-
export { abortedError, alreadyExistsError, failedPreconditionError, internalError, invalidArgumentError, notFoundError, unavailableError, } from "./pipeline/errors.js";
|
|
106
|
+
export { abortedError, alreadyExistsError, ERROR_REASON_DOMAIN, failedPreconditionError, internalError, invalidArgumentError, notFoundError, unavailableError, } from "./pipeline/errors.js";
|
|
107
|
+
export type { RefusalReason } from "./pipeline/errors.js";
|
|
107
108
|
export { generateSlug } from "./pipeline/steps/slug.js";
|
|
108
109
|
export { encodeInProcessCaller, IN_PROCESS_CALLER_HEADER, } from "./pipeline/interceptors/auth.js";
|
|
109
110
|
export { callerIdentityKey, callerIdentityOf, } from "./pipeline/interceptors/auth.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,GACR,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,4BAA4B,EAC5B,kBAAkB,EAClB,2BAA2B,EAC3B,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AASlC,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOjE,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EACV,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIzE,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAK3E,YAAY,EACV,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAMxC,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAOzC,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,YAAY,EACV,gCAAgC,EAChC,mCAAmC,GACpC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAU1F,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAK9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAGtF,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAS3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,YAAY,EACV,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAOhF,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kCAAkC,EAClC,OAAO,EACP,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,aAAa,EACb,aAAa,GACd,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAI1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAM7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAStF,YAAY,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAM3F,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAgBzC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAOjF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAOjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAYtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAW9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAKtE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAI9B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,YAAY,GACb,MAAM,uBAAuB,CAAC;AAK/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAWhE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,YAAY,EACV,eAAe,EACf,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,GACjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAIrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAKjG,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,YAAY,EACV,wBAAwB,EAKxB,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EAKxB,qBAAqB,GACtB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAcpC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AAS9E,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,IAAI,sCAAsC,GAC3D,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAQrE,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,0CAA0C,CAAC;AAOlD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -92,7 +92,7 @@ export { createErrorBoundaryInterceptor } from "./pipeline/interceptors/error-bo
|
|
|
92
92
|
// whichever chain created the row.
|
|
93
93
|
export { diffVisibilityShapes, resolveResourceCreatedEvent, visibilityShapesFor, } from "./pipeline/steps/authorization-tuples.js";
|
|
94
94
|
export { RequestContext } from "./pipeline/request-context.js";
|
|
95
|
-
export { abortedError, alreadyExistsError, failedPreconditionError, internalError, invalidArgumentError, notFoundError, unavailableError, } from "./pipeline/errors.js";
|
|
95
|
+
export { abortedError, alreadyExistsError, ERROR_REASON_DOMAIN, failedPreconditionError, internalError, invalidArgumentError, notFoundError, unavailableError, } from "./pipeline/errors.js";
|
|
96
96
|
// The shared slug derivation (C2 Stage 3): extension-registered resource
|
|
97
97
|
// kinds derive slugs with the SAME generator both editions pin
|
|
98
98
|
// (ApiRequestResourceSlugGenerator parity) — the semantics live exactly
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAe3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAW1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAKnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,qBAAqB;AACrB,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAQlF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAU3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAKhF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAGxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAehF,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EACL,kCAAkC,EAClC,OAAO,EACP,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,uEAAuE;AACvE,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAKvE,6EAA6E;AAC7E,0EAA0E;AAC1E,uEAAuE;AACvE,2CAA2C;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,0EAA0E;AAC1E,qEAAqE;AACrE,2EAA2E;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAO7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAUtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,2EAA2E;AAC3E,mCAAmC;AACnC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAe3E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAW1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAKnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,qBAAqB;AACrB,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAQlF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAU3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAKhF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAGxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAehF,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,gBAAgB,EAChB,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EACL,kCAAkC,EAClC,OAAO,EACP,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,uEAAuE;AACvE,WAAW;AACX,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAKvE,6EAA6E;AAC7E,0EAA0E;AAC1E,uEAAuE;AACvE,2CAA2C;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,0EAA0E;AAC1E,qEAAqE;AACrE,2EAA2E;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAO7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAUtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,2EAA2E;AAC3E,mCAAmC;AACnC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,yEAAyE;AACzE,+DAA+D;AAC/D,wEAAwE;AACxE,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,gEAAgE;AAChE,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,sEAAsE;AACtE,qEAAqE;AACrE,6DAA6D;AAC7D,iEAAiE;AACjE,wEAAwE;AACxE,iEAAiE;AACjE,yEAAyE;AACzE,+DAA+D;AAC/D,yEAAyE;AACzE,8DAA8D;AAC9D,wEAAwE;AACxE,uEAAuE;AACvE,mEAAmE;AACnE,2DAA2D;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,+DAA+D;AAC/D,qEAAqE;AACrE,qEAAqE;AACrE,wEAAwE;AACxE,iCAAiC;AACjC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,oEAAoE;AACpE,wEAAwE;AACxE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,kDAAkD;AAClD,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,0EAA0E;AAC1E,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,sEAAsE;AACtE,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AACxE,+DAA+D;AAC/D,iEAAiE;AACjE,yEAAyE;AACzE,uEAAuE;AACvE,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,sEAAsE;AACtE,qEAAqE;AACrE,0EAA0E;AAC1E,wEAAwE;AACxE,kEAAkE;AAClE,qEAAqE;AACrE,sEAAsE;AACtE,qEAAqE;AACrE,yEAAyE;AACzE,2BAA2B;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EACL,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAe9B,uEAAuE;AACvE,yEAAyE;AACzE,uEAAuE;AACvE,qEAAqE;AACrE,qEAAqE;AACrE,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,0EAA0E;AAC1E,0EAA0E;AAC1E,sEAAsE;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAQvE,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,oEAAoE;AACpE,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAkBrG,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AAEpC,qEAAqE;AACrE,uEAAuE;AACvE,0EAA0E;AAC1E,qEAAqE;AACrE,6DAA6D;AAC7D,uEAAuE;AACvE,qEAAqE;AACrE,gEAAgE;AAChE,0EAA0E;AAC1E,qEAAqE;AACrE,uEAAuE;AACvE,iEAAiE;AACjE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,GACd,MAAM,4BAA4B,CAAC;AAepC,OAAO,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AAE9E,yEAAyE;AACzE,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,kDAAkD;AAClD,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,IAAI,sCAAsC,GAC3D,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,GAClC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AA0BrE,oEAAoE;AACpE,yEAAyE;AACzE,iDAAiD;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
+
import { Code, ConnectError } from "@connectrpc/connect";
|
|
2
|
+
/** The domain every structured refusal reason is issued under. */
|
|
3
|
+
export declare const ERROR_REASON_DOMAIN = "stigmer.ai";
|
|
1
4
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* show these messages verbatim, so the FORMAT STRINGS are byte-pinned
|
|
5
|
-
* contract, mirrored character-for-character from Go.
|
|
6
|
-
*
|
|
7
|
-
* The sanitization contract (stigmer/stigmer#478): internalError's
|
|
8
|
-
* wire-visible description is ONLY the static message — the cause's raw
|
|
9
|
-
* text can carry storage-engine detail or filesystem paths, and on an
|
|
10
|
-
* anonymous surface that is information disclosure. The cause rides
|
|
11
|
-
* ConnectError.cause for server-side logs; it never crosses the wire.
|
|
5
|
+
* A machine-readable refusal reason: an UPPER_SNAKE code and the facts a
|
|
6
|
+
* client needs to act on it, both documented on the refusing RPC.
|
|
12
7
|
*/
|
|
13
|
-
|
|
8
|
+
export interface RefusalReason {
|
|
9
|
+
readonly reason: string;
|
|
10
|
+
readonly metadata?: Readonly<Record<string, string>>;
|
|
11
|
+
}
|
|
14
12
|
/** Go NotFoundError: "%s not found: %s". */
|
|
15
13
|
export declare function notFoundError(resource: string, id: string): ConnectError;
|
|
16
14
|
/** Go InvalidArgumentError (callers pre-format their message). */
|
|
@@ -19,9 +17,10 @@ export declare function invalidArgumentError(message: string): ConnectError;
|
|
|
19
17
|
export declare function alreadyExistsError(resource: string, id: string): ConnectError;
|
|
20
18
|
/**
|
|
21
19
|
* Go FailedPreconditionError — the system is not in a state required for
|
|
22
|
-
* the operation (vs AlreadyExists, which tells the caller to stop).
|
|
20
|
+
* the operation (vs AlreadyExists, which tells the caller to stop). With a
|
|
21
|
+
* reason, the refusal also carries it as an ErrorInfo detail.
|
|
23
22
|
*/
|
|
24
|
-
export declare function failedPreconditionError(message: string): ConnectError;
|
|
23
|
+
export declare function failedPreconditionError(message: string, reason?: RefusalReason): ConnectError;
|
|
25
24
|
/** Go AbortedError — retryable conflict (e.g. an in-flight dedupe claim). */
|
|
26
25
|
export declare function abortedError(message: string): ConnectError;
|
|
27
26
|
/** Go UnavailableError — a dependency is temporarily unreachable. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/pipeline/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/pipeline/errors.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGzD,kEAAkE;AAClE,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,CAExE;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAElE;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,CAK7E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,aAAa,GACrB,YAAY,CAcd;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAE3E;AA2BD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,GAClB,YAAY,CAEd;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAErE"}
|
package/dist/pipeline/errors.js
CHANGED
|
@@ -9,8 +9,21 @@
|
|
|
9
9
|
* text can carry storage-engine detail or filesystem paths, and on an
|
|
10
10
|
* anonymous surface that is information disclosure. The cause rides
|
|
11
11
|
* ConnectError.cause for server-side logs; it never crosses the wire.
|
|
12
|
+
*
|
|
13
|
+
* A refusal a client should branch on, rather than parse its copy, also
|
|
14
|
+
* carries a google.rpc.ErrorInfo detail (domain "stigmer.ai"), the
|
|
15
|
+
* platform's structured-refusal contract that the SDK's getErrorReason
|
|
16
|
+
* reads. Its reasons are documented on the refusing RPC's proto comment.
|
|
17
|
+
* The detail rides beside the message and never changes it, so the copy
|
|
18
|
+
* stays byte-pinned. A detail survives the pipeline and the transport
|
|
19
|
+
* boundary; only the visitor sanitizer, which rewrites an anonymous
|
|
20
|
+
* caller's error, drops it (interceptors/error-boundary.ts).
|
|
12
21
|
*/
|
|
22
|
+
import { create } from "@bufbuild/protobuf";
|
|
13
23
|
import { Code, ConnectError } from "@connectrpc/connect";
|
|
24
|
+
import { ErrorInfoSchema } from "@stigmer/protos/google/rpc/error_details_pb";
|
|
25
|
+
/** The domain every structured refusal reason is issued under. */
|
|
26
|
+
export const ERROR_REASON_DOMAIN = "stigmer.ai";
|
|
14
27
|
/** Go NotFoundError: "%s not found: %s". */
|
|
15
28
|
export function notFoundError(resource, id) {
|
|
16
29
|
return new ConnectError(`${resource} not found: ${id}`, Code.NotFound);
|
|
@@ -25,10 +38,23 @@ export function alreadyExistsError(resource, id) {
|
|
|
25
38
|
}
|
|
26
39
|
/**
|
|
27
40
|
* Go FailedPreconditionError — the system is not in a state required for
|
|
28
|
-
* the operation (vs AlreadyExists, which tells the caller to stop).
|
|
41
|
+
* the operation (vs AlreadyExists, which tells the caller to stop). With a
|
|
42
|
+
* reason, the refusal also carries it as an ErrorInfo detail.
|
|
29
43
|
*/
|
|
30
|
-
export function failedPreconditionError(message) {
|
|
31
|
-
|
|
44
|
+
export function failedPreconditionError(message, reason) {
|
|
45
|
+
if (reason === undefined) {
|
|
46
|
+
return new ConnectError(message, Code.FailedPrecondition);
|
|
47
|
+
}
|
|
48
|
+
return new ConnectError(message, Code.FailedPrecondition, undefined, [
|
|
49
|
+
{
|
|
50
|
+
desc: ErrorInfoSchema,
|
|
51
|
+
value: create(ErrorInfoSchema, {
|
|
52
|
+
reason: reason.reason,
|
|
53
|
+
domain: ERROR_REASON_DOMAIN,
|
|
54
|
+
metadata: { ...reason.metadata },
|
|
55
|
+
}),
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
32
58
|
}
|
|
33
59
|
/** Go AbortedError — retryable conflict (e.g. an in-flight dedupe claim). */
|
|
34
60
|
export function abortedError(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/pipeline/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/pipeline/errors.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/server",
|
|
3
|
-
"version": "3.38.
|
|
3
|
+
"version": "3.38.2",
|
|
4
4
|
"description": "The Stigmer OSS control plane as a composable library: composeServer, the extension registry and the driver seams a composition builds on. The self-contained deployable of the same server is @stigmer/server-slim.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -63,11 +63,11 @@
|
|
|
63
63
|
"@connectrpc/connect-node": "^2.0.0",
|
|
64
64
|
"@kubernetes/client-node": "2.0.0",
|
|
65
65
|
"@opentelemetry/api": "^1.9.0",
|
|
66
|
-
"@stigmer/outbound": "3.38.
|
|
67
|
-
"@stigmer/plugin-package": "3.38.
|
|
68
|
-
"@stigmer/protos": "3.38.
|
|
69
|
-
"@stigmer/temporal-codecs": "3.38.
|
|
70
|
-
"@stigmer/zip-structure": "3.38.
|
|
66
|
+
"@stigmer/outbound": "3.38.2",
|
|
67
|
+
"@stigmer/plugin-package": "3.38.2",
|
|
68
|
+
"@stigmer/protos": "3.38.2",
|
|
69
|
+
"@stigmer/temporal-codecs": "3.38.2",
|
|
70
|
+
"@stigmer/zip-structure": "3.38.2",
|
|
71
71
|
"@temporalio/activity": "1.16.2",
|
|
72
72
|
"@temporalio/client": "1.16.2",
|
|
73
73
|
"@temporalio/common": "1.16.2",
|
package/src/index.ts
CHANGED
|
@@ -293,12 +293,14 @@ export { RequestContext } from "./pipeline/request-context.js";
|
|
|
293
293
|
export {
|
|
294
294
|
abortedError,
|
|
295
295
|
alreadyExistsError,
|
|
296
|
+
ERROR_REASON_DOMAIN,
|
|
296
297
|
failedPreconditionError,
|
|
297
298
|
internalError,
|
|
298
299
|
invalidArgumentError,
|
|
299
300
|
notFoundError,
|
|
300
301
|
unavailableError,
|
|
301
302
|
} from "./pipeline/errors.js";
|
|
303
|
+
export type { RefusalReason } from "./pipeline/errors.js";
|
|
302
304
|
// The shared slug derivation (C2 Stage 3): extension-registered resource
|
|
303
305
|
// kinds derive slugs with the SAME generator both editions pin
|
|
304
306
|
// (ApiRequestResourceSlugGenerator parity) — the semantics live exactly
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The structured-refusal seam on failedPreconditionError: a reason rides
|
|
3
|
+
* as a google.rpc.ErrorInfo detail beside the byte-pinned message, and
|
|
4
|
+
* reaches a client over a real Connect call. The SDK's getErrorReason
|
|
5
|
+
* reads the detail the same way the round trip below does, so a refusal
|
|
6
|
+
* this helper builds is one a console can branch on.
|
|
7
|
+
*/
|
|
8
|
+
import { create } from "@bufbuild/protobuf";
|
|
9
|
+
import {
|
|
10
|
+
Code,
|
|
11
|
+
ConnectError,
|
|
12
|
+
createClient,
|
|
13
|
+
createRouterTransport,
|
|
14
|
+
} from "@connectrpc/connect";
|
|
15
|
+
import { ErrorInfoSchema } from "@stigmer/protos/google/rpc/error_details_pb";
|
|
16
|
+
import { Health, HealthCheckRequestSchema } from "@stigmer/protos/grpc/health/v1/health_pb";
|
|
17
|
+
import { describe, expect, it } from "vitest";
|
|
18
|
+
|
|
19
|
+
import { ERROR_REASON_DOMAIN, failedPreconditionError } from "../errors.js";
|
|
20
|
+
|
|
21
|
+
describe("failedPreconditionError", () => {
|
|
22
|
+
it("carries no detail without a reason", () => {
|
|
23
|
+
const error = failedPreconditionError("Add a payment method first.");
|
|
24
|
+
|
|
25
|
+
expect(error.code).toBe(Code.FailedPrecondition);
|
|
26
|
+
expect(error.rawMessage).toBe("Add a payment method first.");
|
|
27
|
+
expect(error.findDetails(ErrorInfoSchema)).toEqual([]);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("attaches the reason as an ErrorInfo detail and leaves the message as written", () => {
|
|
31
|
+
const error = failedPreconditionError("Teams need the Team plan or above.", {
|
|
32
|
+
reason: "PLAN_UPGRADE_REQUIRED",
|
|
33
|
+
metadata: { feature: "teams", org_id: "org_1" },
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
expect(error.rawMessage).toBe("Teams need the Team plan or above.");
|
|
37
|
+
const [info] = error.findDetails(ErrorInfoSchema);
|
|
38
|
+
expect(info?.reason).toBe("PLAN_UPGRADE_REQUIRED");
|
|
39
|
+
expect(info?.domain).toBe(ERROR_REASON_DOMAIN);
|
|
40
|
+
expect(info?.metadata).toEqual({ feature: "teams", org_id: "org_1" });
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("delivers the detail to a client across a Connect call", async () => {
|
|
44
|
+
const transport = createRouterTransport((router) => {
|
|
45
|
+
router.service(Health, {
|
|
46
|
+
check: () => {
|
|
47
|
+
throw failedPreconditionError("A saved payment method is required.", {
|
|
48
|
+
reason: "PAYMENT_METHOD_REQUIRED",
|
|
49
|
+
metadata: { org_id: "org_2" },
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
list: () => ({ statuses: {} }),
|
|
53
|
+
watch: async function* () {},
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
const client = createClient(Health, transport);
|
|
57
|
+
|
|
58
|
+
const caught = await client.check(create(HealthCheckRequestSchema)).then(
|
|
59
|
+
() => undefined,
|
|
60
|
+
(error: unknown) => error,
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
expect(caught).toBeInstanceOf(ConnectError);
|
|
64
|
+
const error = caught as ConnectError;
|
|
65
|
+
expect(error.code).toBe(Code.FailedPrecondition);
|
|
66
|
+
expect(error.rawMessage).toBe("A saved payment method is required.");
|
|
67
|
+
const [info] = error.findDetails(ErrorInfoSchema);
|
|
68
|
+
expect(info?.reason).toBe("PAYMENT_METHOD_REQUIRED");
|
|
69
|
+
expect(info?.domain).toBe(ERROR_REASON_DOMAIN);
|
|
70
|
+
expect(info?.metadata).toEqual({ org_id: "org_2" });
|
|
71
|
+
});
|
|
72
|
+
});
|
package/src/pipeline/errors.ts
CHANGED
|
@@ -9,8 +9,31 @@
|
|
|
9
9
|
* text can carry storage-engine detail or filesystem paths, and on an
|
|
10
10
|
* anonymous surface that is information disclosure. The cause rides
|
|
11
11
|
* ConnectError.cause for server-side logs; it never crosses the wire.
|
|
12
|
+
*
|
|
13
|
+
* A refusal a client should branch on, rather than parse its copy, also
|
|
14
|
+
* carries a google.rpc.ErrorInfo detail (domain "stigmer.ai"), the
|
|
15
|
+
* platform's structured-refusal contract that the SDK's getErrorReason
|
|
16
|
+
* reads. Its reasons are documented on the refusing RPC's proto comment.
|
|
17
|
+
* The detail rides beside the message and never changes it, so the copy
|
|
18
|
+
* stays byte-pinned. A detail survives the pipeline and the transport
|
|
19
|
+
* boundary; only the visitor sanitizer, which rewrites an anonymous
|
|
20
|
+
* caller's error, drops it (interceptors/error-boundary.ts).
|
|
12
21
|
*/
|
|
22
|
+
import { create } from "@bufbuild/protobuf";
|
|
13
23
|
import { Code, ConnectError } from "@connectrpc/connect";
|
|
24
|
+
import { ErrorInfoSchema } from "@stigmer/protos/google/rpc/error_details_pb";
|
|
25
|
+
|
|
26
|
+
/** The domain every structured refusal reason is issued under. */
|
|
27
|
+
export const ERROR_REASON_DOMAIN = "stigmer.ai";
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* A machine-readable refusal reason: an UPPER_SNAKE code and the facts a
|
|
31
|
+
* client needs to act on it, both documented on the refusing RPC.
|
|
32
|
+
*/
|
|
33
|
+
export interface RefusalReason {
|
|
34
|
+
readonly reason: string;
|
|
35
|
+
readonly metadata?: Readonly<Record<string, string>>;
|
|
36
|
+
}
|
|
14
37
|
|
|
15
38
|
/** Go NotFoundError: "%s not found: %s". */
|
|
16
39
|
export function notFoundError(resource: string, id: string): ConnectError {
|
|
@@ -32,10 +55,26 @@ export function alreadyExistsError(resource: string, id: string): ConnectError {
|
|
|
32
55
|
|
|
33
56
|
/**
|
|
34
57
|
* Go FailedPreconditionError — the system is not in a state required for
|
|
35
|
-
* the operation (vs AlreadyExists, which tells the caller to stop).
|
|
58
|
+
* the operation (vs AlreadyExists, which tells the caller to stop). With a
|
|
59
|
+
* reason, the refusal also carries it as an ErrorInfo detail.
|
|
36
60
|
*/
|
|
37
|
-
export function failedPreconditionError(
|
|
38
|
-
|
|
61
|
+
export function failedPreconditionError(
|
|
62
|
+
message: string,
|
|
63
|
+
reason?: RefusalReason,
|
|
64
|
+
): ConnectError {
|
|
65
|
+
if (reason === undefined) {
|
|
66
|
+
return new ConnectError(message, Code.FailedPrecondition);
|
|
67
|
+
}
|
|
68
|
+
return new ConnectError(message, Code.FailedPrecondition, undefined, [
|
|
69
|
+
{
|
|
70
|
+
desc: ErrorInfoSchema,
|
|
71
|
+
value: create(ErrorInfoSchema, {
|
|
72
|
+
reason: reason.reason,
|
|
73
|
+
domain: ERROR_REASON_DOMAIN,
|
|
74
|
+
metadata: { ...reason.metadata },
|
|
75
|
+
}),
|
|
76
|
+
},
|
|
77
|
+
]);
|
|
39
78
|
}
|
|
40
79
|
|
|
41
80
|
/** Go AbortedError — retryable conflict (e.g. an in-flight dedupe claim). */
|