spaps-types 1.4.2 → 1.5.1

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/README.md CHANGED
@@ -24,6 +24,7 @@ yarn add spaps-types
24
24
  | One source of truth for app contracts | Shared auth, payment, entitlement, issue-reporting, and user shapes |
25
25
  | Lightweight runtime checks | Guards for roles, permissions, severities, and chain types |
26
26
  | Structured validation | Zod-backed secure-message schema helpers |
27
+ | Webhook consumers | Generated event catalog, envelope parser, and signature verifier |
27
28
  | Docs tooling contracts | Types for `docs/manifest.json` style metadata |
28
29
 
29
30
  ## Quick Example
@@ -83,6 +84,28 @@ messageSchema.parse({
83
84
  });
84
85
  ```
85
86
 
87
+ ## Webhook Event Helpers
88
+
89
+ ```ts
90
+ import {
91
+ SPAPS_WEBHOOK_EVENT_CATALOG,
92
+ parseSpapsWebhookEnvelope,
93
+ verifySpapsWebhookSignature,
94
+ } from "spaps-types";
95
+
96
+ verifySpapsWebhookSignature({
97
+ body: rawBody,
98
+ signature: request.headers["x-spaps-signature"],
99
+ secret: webhookSecret,
100
+ });
101
+
102
+ const event = parseSpapsWebhookEnvelope(rawBody);
103
+ console.log(SPAPS_WEBHOOK_EVENT_CATALOG[event.type].schemaVersion);
104
+ ```
105
+
106
+ Use the raw request body for signature verification. The catalog is generated
107
+ from the Python server event registry.
108
+
86
109
  ## Export Groups
87
110
 
88
111
  | Group | Examples |
@@ -90,9 +113,10 @@ messageSchema.parse({
90
113
  | Core models | `Application`, `User`, `UserProfile`, `UserWallet` |
91
114
  | Auth and sessions | `TokenPayload`, `RefreshTokenPayload`, `TokenPair`, `AuthResponse` |
92
115
  | Payments | `CheckoutSession`, `Subscription`, `Product`, `Price`, `UsageBalance` |
93
- | Entitlements | `Entitlement`, `ResourceType` |
116
+ | Entitlements | `Entitlement`, `ResourceType`, `ProjectGrant`, `ListProjectGrantsResponse`, `ProjectAccessCheckResponse` |
94
117
  | Issue reporting | `IssueReport`, `IssueReportTarget`, `IssueReportAttachmentOut`, `IssueReportListResult` |
95
118
  | Secure messages | `SecureMessage`, `CreateSecureMessageRequest`, schema helpers |
119
+ | Webhooks | `SPAPS_WEBHOOK_EVENT_CATALOG`, `SpapsWebhookEnvelope`, `verifySpapsWebhookSignature` |
96
120
  | Docs tooling | `DocsManifest`, `DocsManifestEndpoint`, related manifest types |
97
121
 
98
122
  ## Runtime Guards
@@ -104,6 +128,7 @@ Common helpers include:
104
128
  - `isValidSeverity`
105
129
  - `isValidAlertSeverity`
106
130
  - `isValidChainType`
131
+ - `isSpapsWebhookEventType`
107
132
 
108
133
  ## Validation
109
134
 
package/dist/docs.d.ts CHANGED
@@ -3,12 +3,34 @@ export interface DocsManifestEndpointSDKRef {
3
3
  method: string;
4
4
  file?: string;
5
5
  }
6
+ export interface DocsManifestEndpointAuth {
7
+ auth_type: string;
8
+ required: boolean;
9
+ schemes: string[];
10
+ api_key: {
11
+ required: boolean;
12
+ accepted: string[];
13
+ };
14
+ jwt: {
15
+ required: boolean;
16
+ optional: boolean;
17
+ };
18
+ roles: string[];
19
+ provider_signature?: {
20
+ required: boolean;
21
+ scheme: string;
22
+ };
23
+ }
6
24
  export interface DocsManifestEndpoint {
7
25
  method: string;
8
26
  path: string;
9
27
  docs: string[];
10
28
  tests: string[];
11
29
  tags: string[];
30
+ auth: DocsManifestEndpointAuth;
31
+ rate_tier: string;
32
+ publishable_scope: string[] | null;
33
+ entitlement_key: string | null;
12
34
  category?: string;
13
35
  authentication?: string;
14
36
  description?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,0BAA0B,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,GAAG,EAAE;QACH,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kBAAkB,CAAC,EAAE;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,0BAA0B,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CAC1D"}