@suss/packs 0.22.4 → 0.24.0

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 (88) hide show
  1. package/README.md +2 -0
  2. package/dist/activerecord.d.ts +6 -1
  3. package/dist/activerecord.js +10 -0
  4. package/dist/aiohttp.d.ts +1 -0
  5. package/dist/aiohttp.js +43 -0
  6. package/dist/apollo-client.d.ts +1 -1
  7. package/dist/apollo-client.js +7 -0
  8. package/dist/apollo.d.ts +1 -1
  9. package/dist/apollo.js +7 -0
  10. package/dist/aws-dynamodb.d.ts +1 -1
  11. package/dist/aws-dynamodb.js +10 -0
  12. package/dist/aws-eventbridge.d.ts +1 -1
  13. package/dist/aws-eventbridge.js +7 -0
  14. package/dist/aws-lambda.d.ts +1 -1
  15. package/dist/aws-lambda.js +7 -0
  16. package/dist/aws-s3.d.ts +1 -1
  17. package/dist/aws-s3.js +7 -0
  18. package/dist/aws-secrets-manager.d.ts +1 -1
  19. package/dist/aws-secrets-manager.js +7 -0
  20. package/dist/aws-sns.d.ts +1 -1
  21. package/dist/aws-sns.js +7 -0
  22. package/dist/aws-sqs.d.ts +1 -1
  23. package/dist/aws-sqs.js +7 -0
  24. package/dist/aws-ssm.d.ts +1 -1
  25. package/dist/aws-ssm.js +7 -0
  26. package/dist/axios.d.ts +1 -1
  27. package/dist/axios.js +7 -0
  28. package/dist/cloudflare-workers.d.ts +1 -1
  29. package/dist/cloudflare-workers.js +10 -0
  30. package/dist/drizzle.d.ts +1 -1
  31. package/dist/drizzle.js +7 -0
  32. package/dist/express.d.ts +1 -1
  33. package/dist/express.js +7 -0
  34. package/dist/faraday.d.ts +1 -0
  35. package/dist/faraday.js +48 -0
  36. package/dist/fastapi.d.ts +1 -1
  37. package/dist/fastapi.js +49 -1
  38. package/dist/fastify.d.ts +1 -1
  39. package/dist/fastify.js +7 -0
  40. package/dist/fetch.d.ts +1 -1
  41. package/dist/fetch.js +8 -0
  42. package/dist/flask-restx.d.ts +1 -1
  43. package/dist/flask-restx.js +40 -0
  44. package/dist/gcs.d.ts +1 -1
  45. package/dist/gcs.js +7 -0
  46. package/dist/graphql-ruby.d.ts +1 -1
  47. package/dist/graphql-ruby.js +13 -0
  48. package/dist/hono.d.ts +1 -1
  49. package/dist/hono.js +7 -0
  50. package/dist/httpx.d.ts +1 -0
  51. package/dist/httpx.js +53 -0
  52. package/dist/mongoose.d.ts +1 -1
  53. package/dist/mongoose.js +7 -0
  54. package/dist/nestjs-graphql.d.ts +1 -1
  55. package/dist/nestjs-graphql.js +7 -0
  56. package/dist/nestjs-microservices.d.ts +1 -1
  57. package/dist/nestjs-microservices.js +7 -0
  58. package/dist/nestjs-rest.d.ts +1 -1
  59. package/dist/nestjs-rest.js +7 -0
  60. package/dist/net-http.d.ts +1 -0
  61. package/dist/net-http.js +64 -0
  62. package/dist/nextjs.d.ts +1 -1
  63. package/dist/nextjs.js +7 -0
  64. package/dist/node.d.ts +1 -1
  65. package/dist/node.js +8 -0
  66. package/dist/package-exports.d.ts +1 -1
  67. package/dist/package-exports.js +7 -0
  68. package/dist/prisma.d.ts +1 -1
  69. package/dist/prisma.js +7 -0
  70. package/dist/rails.d.ts +1 -1
  71. package/dist/rails.js +27 -0
  72. package/dist/react-query.d.ts +1 -1
  73. package/dist/react-query.js +7 -0
  74. package/dist/react-router.d.ts +1 -1
  75. package/dist/react-router.js +10 -0
  76. package/dist/react.d.ts +1 -1
  77. package/dist/react.js +7 -0
  78. package/dist/redis.d.ts +1 -1
  79. package/dist/redis.js +11 -0
  80. package/dist/requests.d.ts +1 -0
  81. package/dist/requests.js +54 -0
  82. package/dist/sqlalchemy.d.ts +1 -1
  83. package/dist/sqlalchemy.js +7 -0
  84. package/dist/ts-rest.d.ts +1 -1
  85. package/dist/ts-rest.js +7 -0
  86. package/dist/zustand.d.ts +1 -1
  87. package/dist/zustand.js +7 -0
  88. package/package.json +35 -10
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @suss/packs
2
2
 
3
+ Part of [suss](https://github.com/nimbuscloud-ai/suss), which reads both sides of every call in a repository and says where the two disagree.
4
+
3
5
  Every pack suss ships, as one package with a subpath per pack.
4
6
 
5
7
  ```bash
@@ -1,4 +1,5 @@
1
- export { default, optionsSchema } from '@suss/framework-activerecord';
1
+ export { declares, default, optionsSchema } from '@suss/framework-activerecord';
2
+ import '@suss/client-aiohttp';
2
3
  import '@suss/client-apollo';
3
4
  import '@suss/framework-apollo';
4
5
  import '@suss/framework-aws-dynamodb';
@@ -13,6 +14,7 @@ import '@suss/client-axios';
13
14
  import '@suss/framework-cloudflare-workers';
14
15
  import '@suss/framework-drizzle';
15
16
  import '@suss/framework-express';
17
+ import '@suss/client-faraday';
16
18
  import '@suss/framework-fastapi';
17
19
  import '@suss/framework-fastify';
18
20
  import '@suss/client-web';
@@ -20,10 +22,12 @@ import '@suss/framework-flask-restx';
20
22
  import '@suss/framework-gcs';
21
23
  import '@suss/framework-graphql-ruby';
22
24
  import '@suss/framework-hono';
25
+ import '@suss/client-httpx';
23
26
  import '@suss/framework-mongoose';
24
27
  import '@suss/framework-nestjs-graphql';
25
28
  import '@suss/framework-nestjs-microservices';
26
29
  import '@suss/framework-nestjs-rest';
30
+ import '@suss/client-net-http';
27
31
  import '@suss/framework-nextjs';
28
32
  import '@suss/runtime-node';
29
33
  import '@suss/framework-package-exports';
@@ -33,6 +37,7 @@ import '@suss/framework-react-query';
33
37
  import '@suss/framework-react-router';
34
38
  import '@suss/framework-react';
35
39
  import '@suss/framework-redis';
40
+ import '@suss/client-requests';
36
41
  import '@suss/framework-sqlalchemy';
37
42
  import '@suss/framework-ts-rest';
38
43
  import '@suss/framework-zustand';
@@ -48,8 +48,18 @@ function activeRecordFramework(options) {
48
48
  storage: activeRecordStorage(options)
49
49
  };
50
50
  }
51
+ var declares = {
52
+ kind: "effects",
53
+ package: "@suss/framework-activerecord",
54
+ dependencies: [
55
+ { ecosystem: "rubygems", name: "activerecord" },
56
+ { ecosystem: "rubygems", name: "rails" }
57
+ ],
58
+ reads: "ActiveRecord calls (Ruby): a call matches when the constant its receivers start at reaches `ActiveRecord::Base`, following what each class extends through the project."
59
+ };
51
60
  var index_default = activeRecordFramework;
52
61
  export {
62
+ declares,
53
63
  index_default as default,
54
64
  optionsSchema
55
65
  };
@@ -0,0 +1 @@
1
+ export { declares, default } from '@suss/client-aiohttp';
@@ -0,0 +1,43 @@
1
+ // ../client/aiohttp/dist/index.js
2
+ var VERB_METHODS = {
3
+ get: "GET",
4
+ post: "POST",
5
+ put: "PUT",
6
+ patch: "PATCH",
7
+ delete: "DELETE",
8
+ head: "HEAD",
9
+ options: "OPTIONS"
10
+ };
11
+ function aiohttpClient() {
12
+ return {
13
+ name: "aiohttp",
14
+ protocol: "http",
15
+ discovery: [],
16
+ clients: [
17
+ {
18
+ type: "clientCall",
19
+ importModule: ["aiohttp"],
20
+ verbAttributeNames: VERB_METHODS,
21
+ url: { position: 0, keyword: "url" },
22
+ methodCall: {
23
+ attribute: "request",
24
+ methodPosition: 0,
25
+ methodKeyword: "method",
26
+ urlPosition: 1
27
+ },
28
+ receiverConstructors: ["ClientSession"]
29
+ }
30
+ ]
31
+ };
32
+ }
33
+ var declares = {
34
+ kind: "client",
35
+ package: "@suss/client-aiohttp",
36
+ dependencies: [{ ecosystem: "pypi", name: "aiohttp" }],
37
+ reads: "aiohttp call sites (Python): the request methods on a `ClientSession`, opened with `async with` or held in an assignment."
38
+ };
39
+ var index_default = aiohttpClient;
40
+ export {
41
+ declares,
42
+ index_default as default
43
+ };
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/client-apollo';
1
+ export { declares, default, optionsSchema } from '@suss/client-apollo';
@@ -153,8 +153,15 @@ function apolloClientPack(options = {}) {
153
153
  }
154
154
  };
155
155
  }
156
+ var declares = {
157
+ kind: "client",
158
+ package: "@suss/client-apollo",
159
+ dependencies: [{ ecosystem: "npm", name: "@apollo/client" }],
160
+ reads: "`@apollo/client` hooks + imperative `client.query`."
161
+ };
156
162
  var index_default = apolloClientPack;
157
163
  export {
164
+ declares,
158
165
  index_default as default,
159
166
  optionsSchema
160
167
  };
package/dist/apollo.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from '@suss/framework-apollo';
1
+ export { declares, default } from '@suss/framework-apollo';
package/dist/apollo.js CHANGED
@@ -84,7 +84,14 @@ function apolloFramework() {
84
84
  }
85
85
  };
86
86
  }
87
+ var declares = {
88
+ kind: "framework",
89
+ package: "@suss/framework-apollo",
90
+ dependencies: [{ ecosystem: "npm", name: "@apollo/server" }],
91
+ reads: "Apollo Server resolvers (code-first)."
92
+ };
87
93
  var index_default = apolloFramework;
88
94
  export {
95
+ declares,
89
96
  index_default as default
90
97
  };
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-aws-dynamodb';
1
+ export { declares, default, optionsSchema } from '@suss/framework-aws-dynamodb';
@@ -328,8 +328,18 @@ function dynamoFramework(options = {}) {
328
328
  ...options.requiresImport === void 0 ? {} : { requiresImport: options.requiresImport }
329
329
  });
330
330
  }
331
+ var declares = {
332
+ kind: "effects",
333
+ package: "@suss/framework-aws-dynamodb",
334
+ dependencies: [
335
+ { ecosystem: "npm", name: "@aws-sdk/lib-dynamodb" },
336
+ { ecosystem: "npm", name: "@aws-sdk/client-dynamodb" }
337
+ ],
338
+ reads: "AWS SDK v3 DynamoDB calls, emits storage-access interactions."
339
+ };
331
340
  var index_default = dynamoFramework;
332
341
  export {
342
+ declares,
333
343
  index_default as default,
334
344
  optionsSchema
335
345
  };
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-aws-eventbridge';
1
+ export { declares, default, optionsSchema } from '@suss/framework-aws-eventbridge';
@@ -88,8 +88,15 @@ function eventBridgeFramework(options = {}) {
88
88
  }
89
89
  );
90
90
  }
91
+ var declares = {
92
+ kind: "effects",
93
+ package: "@suss/framework-aws-eventbridge",
94
+ dependencies: [{ ecosystem: "npm", name: "@aws-sdk/client-eventbridge" }],
95
+ reads: "AWS EventBridge `PutEvents` producer calls, emits message-bus interactions."
96
+ };
91
97
  var index_default = eventBridgeFramework;
92
98
  export {
99
+ declares,
93
100
  index_default as default,
94
101
  optionsSchema
95
102
  };
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-aws-lambda';
1
+ export { declares, default, optionsSchema } from '@suss/framework-aws-lambda';
@@ -430,8 +430,15 @@ function awsLambdaFramework(_options = {}) {
430
430
  declarations: declarationsIn(invokes)
431
431
  };
432
432
  }
433
+ var declares = {
434
+ kind: "framework",
435
+ package: "@suss/framework-aws-lambda",
436
+ dependencies: [{ ecosystem: "npm", name: "@types/aws-lambda" }],
437
+ reads: "AWS Lambda HTTP handlers, paired to SAM / CloudFormation-declared routes."
438
+ };
433
439
  var index_default = awsLambdaFramework;
434
440
  export {
441
+ declares,
435
442
  index_default as default,
436
443
  optionsSchema
437
444
  };
package/dist/aws-s3.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from '@suss/framework-aws-s3';
1
+ export { declares, default } from '@suss/framework-aws-s3';
package/dist/aws-s3.js CHANGED
@@ -34,7 +34,14 @@ function s3Framework() {
34
34
  protocol: "s3"
35
35
  });
36
36
  }
37
+ var declares = {
38
+ kind: "effects",
39
+ package: "@suss/framework-aws-s3",
40
+ dependencies: [{ ecosystem: "npm", name: "@aws-sdk/client-s3" }],
41
+ reads: "AWS SDK v3 S3 object calls, emits storage-access interactions."
42
+ };
37
43
  var index_default = s3Framework;
38
44
  export {
45
+ declares,
39
46
  index_default as default
40
47
  };
@@ -1 +1 @@
1
- export { default } from '@suss/framework-aws-secrets-manager';
1
+ export { declares, default } from '@suss/framework-aws-secrets-manager';
@@ -28,7 +28,14 @@ function secretsManagerFramework() {
28
28
  protocol: "aws.secretsmanager"
29
29
  });
30
30
  }
31
+ var declares = {
32
+ kind: "effects",
33
+ package: "@suss/framework-aws-secrets-manager",
34
+ dependencies: [{ ecosystem: "npm", name: "@aws-sdk/client-secrets-manager" }],
35
+ reads: "AWS Secrets Manager calls, emits storage-access interactions against the secret."
36
+ };
31
37
  var index_default = secretsManagerFramework;
32
38
  export {
39
+ declares,
33
40
  index_default as default
34
41
  };
package/dist/aws-sns.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from '@suss/framework-aws-sns';
1
+ export { declares, default } from '@suss/framework-aws-sns';
package/dist/aws-sns.js CHANGED
@@ -44,7 +44,14 @@ function snsFramework() {
44
44
  protocol: "sns"
45
45
  });
46
46
  }
47
+ var declares = {
48
+ kind: "effects",
49
+ package: "@suss/framework-aws-sns",
50
+ dependencies: [{ ecosystem: "npm", name: "@aws-sdk/client-sns" }],
51
+ reads: "AWS SDK v3 SNS `Publish` and `PublishBatch` calls, emits message-send interactions on the topic."
52
+ };
47
53
  var index_default = snsFramework;
48
54
  export {
55
+ declares,
49
56
  index_default as default
50
57
  };
package/dist/aws-sqs.d.ts CHANGED
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-aws-sqs';
1
+ export { declares, default, optionsSchema } from '@suss/framework-aws-sqs';
package/dist/aws-sqs.js CHANGED
@@ -203,8 +203,15 @@ function sqsFramework(options = {}) {
203
203
  ]
204
204
  });
205
205
  }
206
+ var declares = {
207
+ kind: "effects",
208
+ package: "@suss/framework-aws-sqs",
209
+ dependencies: [{ ecosystem: "npm", name: "@aws-sdk/client-sqs" }],
210
+ reads: "AWS SDK v3 SQS producer calls, emits message-send interactions."
211
+ };
206
212
  var index_default = sqsFramework;
207
213
  export {
214
+ declares,
208
215
  index_default as default,
209
216
  optionsSchema
210
217
  };
package/dist/aws-ssm.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from '@suss/framework-aws-ssm';
1
+ export { declares, default } from '@suss/framework-aws-ssm';
package/dist/aws-ssm.js CHANGED
@@ -25,7 +25,14 @@ function ssmFramework() {
25
25
  protocol: "aws.ssm"
26
26
  });
27
27
  }
28
+ var declares = {
29
+ kind: "effects",
30
+ package: "@suss/framework-aws-ssm",
31
+ dependencies: [{ ecosystem: "npm", name: "@aws-sdk/client-ssm" }],
32
+ reads: "AWS SSM Parameter Store calls, emits storage-access interactions against the parameter."
33
+ };
28
34
  var index_default = ssmFramework;
29
35
  export {
36
+ declares,
30
37
  index_default as default
31
38
  };
package/dist/axios.d.ts CHANGED
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/client-axios';
1
+ export { declares, default, optionsSchema } from '@suss/client-axios';
package/dist/axios.js CHANGED
@@ -118,8 +118,15 @@ function axiosPack(options = {}) {
118
118
  failureDelivery: "exception"
119
119
  };
120
120
  }
121
+ var declares = {
122
+ kind: "client",
123
+ package: "@suss/client-axios",
124
+ dependencies: [{ ecosystem: "npm", name: "axios" }],
125
+ reads: "axios call sites + `axios.create` factories."
126
+ };
121
127
  var index_default = axiosPack;
122
128
  export {
129
+ declares,
123
130
  index_default as default,
124
131
  optionsSchema
125
132
  };
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-cloudflare-workers';
1
+ export { declares, default, optionsSchema } from '@suss/framework-cloudflare-workers';
@@ -566,8 +566,18 @@ function cloudflareWorkersFramework(options = {}) {
566
566
  invocationRecognizers: [storeBindingRecognizer]
567
567
  };
568
568
  }
569
+ var declares = {
570
+ kind: "framework",
571
+ package: "@suss/framework-cloudflare-workers",
572
+ dependencies: [
573
+ { ecosystem: "npm", name: "wrangler" },
574
+ { ecosystem: "npm", name: "@cloudflare/workers-types" }
575
+ ],
576
+ reads: "A Cloudflare Workers entrypoint: one unit per trigger the default export defines, and the bindings its code reads off the argument they arrive in."
577
+ };
569
578
  var index_default = cloudflareWorkersFramework;
570
579
  export {
580
+ declares,
571
581
  index_default as default,
572
582
  optionsSchema
573
583
  };
package/dist/drizzle.d.ts CHANGED
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-drizzle';
1
+ export { declares, default, optionsSchema } from '@suss/framework-drizzle';
package/dist/drizzle.js CHANGED
@@ -336,8 +336,15 @@ function drizzleFramework(options = {}) {
336
336
  declarations: declarationsIn([raw])
337
337
  };
338
338
  }
339
+ var declares = {
340
+ kind: "effects",
341
+ package: "@suss/framework-drizzle",
342
+ dependencies: [{ ecosystem: "npm", name: "drizzle-orm" }],
343
+ reads: "Drizzle ORM query-builder and relational-query calls, emits storage-access interactions with SQL table names."
344
+ };
339
345
  var index_default = drizzleFramework;
340
346
  export {
347
+ declares,
341
348
  index_default as default,
342
349
  optionsSchema
343
350
  };
package/dist/express.d.ts CHANGED
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-express';
1
+ export { declares, default, optionsSchema } from '@suss/framework-express';
package/dist/express.js CHANGED
@@ -166,8 +166,15 @@ function expressFramework(_options = {}) {
166
166
  }
167
167
  };
168
168
  }
169
+ var declares = {
170
+ kind: "framework",
171
+ package: "@suss/framework-express",
172
+ dependencies: [{ ecosystem: "npm", name: "express" }],
173
+ reads: "Express handlers."
174
+ };
169
175
  var index_default = expressFramework;
170
176
  export {
177
+ declares,
171
178
  index_default as default,
172
179
  optionsSchema
173
180
  };
@@ -0,0 +1 @@
1
+ export { declares, default } from '@suss/client-faraday';
@@ -0,0 +1,48 @@
1
+ // ../client/faraday/dist/index.js
2
+ var VERB_METHODS = {
3
+ get: "GET",
4
+ post: "POST",
5
+ put: "PUT",
6
+ patch: "PATCH",
7
+ delete: "DELETE",
8
+ head: "HEAD",
9
+ options: "OPTIONS"
10
+ };
11
+ function faradayClient() {
12
+ return {
13
+ name: "faraday",
14
+ protocol: "http",
15
+ discovery: [],
16
+ clients: [
17
+ {
18
+ constantName: "Faraday",
19
+ verbMethodNames: VERB_METHODS,
20
+ // Every one of them takes the URL first.
21
+ url: { position: 0 },
22
+ receiverBuilders: ["new"],
23
+ // `Faraday.new(url: "https://api.example.com/v1")` serves every
24
+ // call on that connection under the path of its own URL.
25
+ builderUrlKeyword: "url",
26
+ // What a caller reads off the response it got back. A test on
27
+ // one of these says which statuses the caller handles.
28
+ response: {
29
+ statusCode: ["status"],
30
+ success: ["success?"],
31
+ body: ["body"],
32
+ failureDelivery: "response"
33
+ }
34
+ }
35
+ ]
36
+ };
37
+ }
38
+ var declares = {
39
+ kind: "client",
40
+ package: "@suss/client-faraday",
41
+ dependencies: [{ ecosystem: "rubygems", name: "faraday" }],
42
+ reads: `Faraday call sites (Ruby): a request method on the module itself or on a connection \`Faraday.new\` built, served under the path that connection's own URL states.`
43
+ };
44
+ var index_default = faradayClient;
45
+ export {
46
+ declares,
47
+ index_default as default
48
+ };
package/dist/fastapi.d.ts CHANGED
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-fastapi';
1
+ export { declares, default, optionsSchema } from '@suss/framework-fastapi';
package/dist/fastapi.js CHANGED
@@ -51,18 +51,66 @@ function fastapiFramework(options = {}) {
51
51
  statusArgument: 0
52
52
  }
53
53
  ],
54
+ // A route may respond by returning one of these built with a status.
55
+ responseConstructors: [
56
+ { callee: "fastapi.Response", statusKeyword: "status_code" },
57
+ {
58
+ callee: "starlette.responses.Response",
59
+ statusKeyword: "status_code"
60
+ },
61
+ {
62
+ callee: "fastapi.responses.JSONResponse",
63
+ statusKeyword: "status_code"
64
+ },
65
+ {
66
+ callee: "starlette.responses.JSONResponse",
67
+ statusKeyword: "status_code"
68
+ }
69
+ ],
54
70
  routerComposition: {
55
71
  routerConstructorName: "APIRouter",
56
72
  includeMethodName: "include_router",
57
73
  routerKeyword: "router",
58
74
  prefixKeyword: "prefix"
59
- }
75
+ },
76
+ wrappers: [
77
+ {
78
+ type: "dependency",
79
+ callees: ["Depends", "Security"],
80
+ keyword: "dependencies",
81
+ registrars: [
82
+ { constructorName: "FastAPI", covers: "everyRoute" },
83
+ { constructorName: "APIRouter", covers: "ownRoutes" }
84
+ ]
85
+ },
86
+ {
87
+ type: "decoratedWrapper",
88
+ attribute: "middleware",
89
+ registrars: [{ constructorName: "FastAPI", covers: "everyRoute" }],
90
+ // `async def m(request, call_next)`.
91
+ continuationParam: 1
92
+ },
93
+ {
94
+ type: "decoratedWrapper",
95
+ attribute: "exception_handler",
96
+ registrars: [{ constructorName: "FastAPI", covers: "everyRoute" }],
97
+ // `async def h(request, exc)`.
98
+ throwParam: 1
99
+ }
100
+ ]
60
101
  }
61
102
  ]
62
103
  };
63
104
  }
105
+ var declares = {
106
+ kind: "framework",
107
+ package: "@suss/framework-fastapi",
108
+ dependencies: [{ ecosystem: "pypi", name: "fastapi" }],
109
+ reads: `FastAPI routes (Python): the verb comes from the decorator's own attribute name, \`APIRouter\` prefixes are composed one \`include_router\` hop deep, and \`response_model\` / \`status_code\` are taken as the declared contract.`
110
+ };
64
111
  var index_default = fastapiFramework;
65
112
  export {
113
+ declares,
66
114
  index_default as default,
67
115
  optionsSchema
68
116
  };
package/dist/fastify.d.ts CHANGED
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-fastify';
1
+ export { declares, default, optionsSchema } from '@suss/framework-fastify';
package/dist/fastify.js CHANGED
@@ -122,8 +122,15 @@ function fastifyFramework(_options = {}) {
122
122
  }
123
123
  };
124
124
  }
125
+ var declares = {
126
+ kind: "framework",
127
+ package: "@suss/framework-fastify",
128
+ dependencies: [{ ecosystem: "npm", name: "fastify" }],
129
+ reads: "Fastify handlers."
130
+ };
125
131
  var index_default = fastifyFramework;
126
132
  export {
133
+ declares,
127
134
  index_default as default,
128
135
  optionsSchema
129
136
  };
package/dist/fetch.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from '@suss/client-web';
1
+ export { declares, default } from '@suss/client-web';
package/dist/fetch.js CHANGED
@@ -58,7 +58,15 @@ function webFetchPack() {
58
58
  ]
59
59
  };
60
60
  }
61
+ var declares = {
62
+ kind: "client",
63
+ package: "@suss/client-web",
64
+ dependencies: [],
65
+ shippedWith: "typescript",
66
+ reads: "Global `fetch` call sites."
67
+ };
61
68
  var index_default = webFetchPack;
62
69
  export {
70
+ declares,
63
71
  index_default as default
64
72
  };
@@ -1 +1 @@
1
- export { default, optionsSchema } from '@suss/framework-flask-restx';
1
+ export { declares, default, optionsSchema } from '@suss/framework-flask-restx';
@@ -65,13 +65,53 @@ function flaskRestxFramework(options = {}) {
65
65
  { callee: "flask_restx.abort", statusArgument: 0 },
66
66
  { callee: "flask.abort", statusArgument: 0 },
67
67
  { callee: "werkzeug.exceptions.abort", statusArgument: 0 }
68
+ ],
69
+ wrappers: [
70
+ {
71
+ type: "decoratedWrapper",
72
+ attribute: "before_request",
73
+ // A blueprint's own hook is not read: a route is decorated on
74
+ // a namespace, and the blueprint it is served under is a mount.
75
+ registrars: [
76
+ {
77
+ constructorName: "Flask",
78
+ importModule: ["flask"],
79
+ covers: "everyRoute"
80
+ }
81
+ ],
82
+ // Flask sends whatever a before_request hook returns, and
83
+ // goes on to the view only when it returns None.
84
+ returnedValueResponds: true
85
+ },
86
+ {
87
+ type: "decoratedWrapper",
88
+ attribute: "errorhandler",
89
+ registrars: [
90
+ {
91
+ constructorName: "Flask",
92
+ importModule: ["flask"],
93
+ covers: "everyRoute"
94
+ },
95
+ { constructorName: "Api", covers: "everyRoute" },
96
+ { constructorName: "Namespace", covers: "ownRoutes" }
97
+ ],
98
+ // `def handle(error)`.
99
+ throwParam: 0
100
+ }
68
101
  ]
69
102
  }
70
103
  ]
71
104
  };
72
105
  }
106
+ var declares = {
107
+ kind: "framework",
108
+ package: "@suss/framework-flask-restx",
109
+ dependencies: [{ ecosystem: "pypi", name: "flask-restx" }],
110
+ reads: `flask-restx \`Resource\` routes (Python), including a project's own wrapper module that re-exports the route decorator.`
111
+ };
73
112
  var index_default = flaskRestxFramework;
74
113
  export {
114
+ declares,
75
115
  index_default as default,
76
116
  optionsSchema
77
117
  };
package/dist/gcs.d.ts CHANGED
@@ -1 +1 @@
1
- export { default } from '@suss/framework-gcs';
1
+ export { declares, default } from '@suss/framework-gcs';
package/dist/gcs.js CHANGED
@@ -49,7 +49,14 @@ function gcsFramework() {
49
49
  recognizedAs: "@suss/framework-gcs"
50
50
  });
51
51
  }
52
+ var declares = {
53
+ kind: "effects",
54
+ package: "@suss/framework-gcs",
55
+ dependencies: [{ ecosystem: "npm", name: "@google-cloud/storage" }],
56
+ reads: "Google Cloud Storage calls, emits storage-access interactions."
57
+ };
52
58
  var index_default = gcsFramework;
53
59
  export {
60
+ declares,
54
61
  index_default as default
55
62
  };