@secondlayer/shared 6.28.1 → 6.29.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.
- package/dist/src/db/index.d.ts +40 -2
- package/dist/src/db/index.js +3 -1
- package/dist/src/db/index.js.map +3 -3
- package/dist/src/db/queries/chain-reorgs.d.ts +35 -1
- package/dist/src/db/queries/chain-reorgs.js +3 -1
- package/dist/src/db/queries/chain-reorgs.js.map +3 -3
- package/dist/src/db/queries/contracts.d.ts +35 -1
- package/dist/src/db/queries/integrity.d.ts +35 -1
- package/dist/src/db/queries/subgraph-gaps.d.ts +35 -1
- package/dist/src/db/queries/subgraph-operations.d.ts +35 -1
- package/dist/src/db/queries/subgraphs.d.ts +43 -2
- package/dist/src/db/queries/subgraphs.js +11 -1
- package/dist/src/db/queries/subgraphs.js.map +4 -4
- package/dist/src/db/queries/subscriptions.d.ts +35 -1
- package/dist/src/db/schema.d.ts +38 -2
- package/dist/src/errors.d.ts +11 -2
- package/dist/src/errors.js +13 -2
- package/dist/src/errors.js.map +3 -3
- package/dist/src/index.d.ts +62 -3
- package/dist/src/index.js +99 -38
- package/dist/src/index.js.map +6 -6
- package/dist/src/node/hiro-client.d.ts +15 -1
- package/dist/src/node/hiro-client.js +10 -1
- package/dist/src/node/hiro-client.js.map +3 -3
- package/dist/src/node/local-client.d.ts +35 -1
- package/dist/src/schemas/index.d.ts +10 -0
- package/dist/src/schemas/index.js +3 -2
- package/dist/src/schemas/index.js.map +3 -3
- package/dist/src/schemas/subgraphs.d.ts +10 -0
- package/dist/src/schemas/subgraphs.js +3 -2
- package/dist/src/schemas/subgraphs.js.map +3 -3
- package/dist/src/subgraphs/spec.d.ts +3 -0
- package/dist/src/subgraphs/spec.js +83 -36
- package/dist/src/subgraphs/spec.js.map +3 -3
- package/dist/src/x402.d.ts +38 -0
- package/dist/src/x402.js +74 -0
- package/dist/src/x402.js.map +10 -0
- package/migrations/0090_events_streams_filter_idx.ts +8 -0
- package/migrations/0091_x402_payments.ts +41 -0
- package/migrations/0092_subgraph_visibility.ts +33 -0
- package/migrations/0093_ghost_accounts.ts +47 -0
- package/package.json +6 -2
package/dist/src/errors.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/errors.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"export const ErrorCodes = {\n\tVALIDATION_ERROR: \"VALIDATION_ERROR\",\n\tDATABASE_ERROR: \"DATABASE_ERROR\",\n\tAUTHENTICATION_ERROR: \"AUTHENTICATION_ERROR\",\n\tAUTHORIZATION_ERROR: \"AUTHORIZATION_ERROR\",\n\tRATE_LIMIT_ERROR: \"RATE_LIMIT_ERROR\",\n\tFORBIDDEN: \"FORBIDDEN\",\n\tVERSION_CONFLICT: \"VERSION_CONFLICT\",\n\tNOT_FOUND: \"NOT_FOUND\",\n\t// Tenant lifecycle (CLI surfaces these verbatim)\n\tKEY_ROTATED: \"KEY_ROTATED\",\n\tTENANT_SUSPENDED: \"TENANT_SUSPENDED\",\n\tNO_TENANT_FOR_PROJECT: \"NO_TENANT_FOR_PROJECT\",\n\tINSTANCE_EXISTS: \"INSTANCE_EXISTS\",\n} as const;\n\nexport type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];\n\n/**\n * Structured payload carried on a refused BYO breaking-change deploy. Single-sourced\n * here so subgraphs (thrower), api (body), sdk (typed error), and cli (renderer) all\n * agree on shape. The deploy is still refused — this only describes the manual\n * DROP + rebuild the user must run themselves.\n */\nexport interface ByoBreakingChangeDetails {\n\treasons: string[];\n\tdiff: {\n\t\taddedTables: string[];\n\t\tremovedTables: string[];\n\t\taddedColumns: Record<string, string[]>;\n\t\tbreakingChanges: string[];\n\t};\n\tplan: {\n\t\tschemaName: string;\n\t\tdropStatement: string;\n\t\tstatements: string[];\n\t\tgrantScript: string;\n\t};\n}\n\n/** Base error class for all Secondlayer errors. */\nexport class SecondLayerError extends Error {\n\tpublic code: ErrorCode;\n\tpublic override cause?: unknown;\n\t/** Optional structured payload merged into the HTTP error body (machine-readable hints). */\n\tpublic details?: Record<string, unknown>;\n\n\tconstructor(\n\t\tcode: ErrorCode,\n\t\tmessage: string,\n\t\tcause?: unknown,\n\t\tdetails?: Record<string, unknown>,\n\t) {\n\t\tsuper(message);\n\t\tthis.code = code;\n\t\tthis.cause = cause;\n\t\tthis.details = details;\n\t\tthis.name = this.constructor.name;\n\t\tError.captureStackTrace?.(this, this.constructor);\n\t}\n\n\ttoJSON(): {\n\t\tname: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tstack: string | undefined;\n\t\tcause: unknown;\n\t\tdetails: Record<string, unknown> | undefined;\n\t} {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tcode: this.code,\n\t\t\tmessage: this.message,\n\t\t\tstack: this.stack,\n\t\t\tcause: this.cause,\n\t\t\tdetails: this.details,\n\t\t};\n\t}\n}\n\nexport class NotFoundError extends SecondLayerError {\n\tconstructor(message: string) {\n\t\tsuper(\"NOT_FOUND\", message);\n\t}\n}\n\nexport class ValidationError extends SecondLayerError {\n\tconstructor(message: string, cause?: unknown) {\n\t\tsuper(\"VALIDATION_ERROR\", message, cause);\n\t}\n}\n\nexport class DatabaseError extends SecondLayerError {\n\tconstructor(message: string, cause?: unknown) {\n\t\tsuper(\"DATABASE_ERROR\", message, cause);\n\t}\n}\n\nexport class AuthenticationError extends SecondLayerError {\n\tconstructor(message: string) {\n\t\tsuper(\"AUTHENTICATION_ERROR\", message);\n\t}\n}\n\nexport class AuthorizationError extends SecondLayerError {\n\tconstructor(message: string, details?: Record<string, unknown>) {\n\t\tsuper(\"AUTHORIZATION_ERROR\", message, undefined, details);\n\t}\n}\n\nexport class RateLimitError extends SecondLayerError {\n\tconstructor(message: string) {\n\t\tsuper(\"RATE_LIMIT_ERROR\", message);\n\t}\n}\n\nexport class ForbiddenError extends SecondLayerError {\n\tconstructor(message = \"Forbidden\") {\n\t\tsuper(\"FORBIDDEN\", message);\n\t}\n}\n\nexport class VersionConflictError extends SecondLayerError {\n\tpublic currentVersion: string;\n\tpublic expectedVersion: string;\n\n\tconstructor(currentVersion: string, expectedVersion: string) {\n\t\tsuper(\n\t\t\t\"VERSION_CONFLICT\",\n\t\t\t`Version conflict: expected ${expectedVersion}, current ${currentVersion}`,\n\t\t);\n\t\tthis.currentVersion = currentVersion;\n\t\tthis.expectedVersion = expectedVersion;\n\t}\n}\n\nexport class KeyRotatedError extends SecondLayerError {\n\tconstructor(message = \"Token has been rotated\") {\n\t\tsuper(\"KEY_ROTATED\", message);\n\t}\n}\n\nexport class TenantSuspendedError extends SecondLayerError {\n\tconstructor(message = \"Instance is suspended\") {\n\t\tsuper(\"TENANT_SUSPENDED\", message);\n\t}\n}\n\n/** Error code → HTTP status. Used by API middleware for code-based matching\n * (avoids cross-bundle instanceof failures from bunup class duplication). */\n// String literal map — codes don't have to be in the central ErrorCode\n// enum (route-local error classes can supply any code; we just map the\n// HTTP status here). This keeps cross-bundle instanceof failures out of\n// the equation.\nexport const CODE_TO_STATUS: Record<\n\tstring,\n\t400 | 401 | 403 | 404 | 409 | 422 | 423 | 429\n> = {\n\tAUTHENTICATION_ERROR: 401,\n\tAUTHORIZATION_ERROR: 403,\n\tRATE_LIMIT_ERROR: 429,\n\tFORBIDDEN: 403,\n\tNOT_FOUND: 404,\n\tVALIDATION_ERROR: 400,\n\tKEY_ROTATED: 401,\n\tTENANT_SUSPENDED: 423,\n\tNO_TENANT_FOR_PROJECT: 404,\n\tINSTANCE_EXISTS: 409,\n\tSUBGRAPH_NOT_FOUND: 404,\n\tBYO_BREAKING_CHANGE: 422,\n} as const;\n\nexport function getErrorMessage(err: unknown): string {\n\treturn err instanceof Error ? err.message : String(err);\n}\n"
|
|
5
|
+
"export const ErrorCodes = {\n\tVALIDATION_ERROR: \"VALIDATION_ERROR\",\n\tDATABASE_ERROR: \"DATABASE_ERROR\",\n\tAUTHENTICATION_ERROR: \"AUTHENTICATION_ERROR\",\n\tAUTHORIZATION_ERROR: \"AUTHORIZATION_ERROR\",\n\tRATE_LIMIT_ERROR: \"RATE_LIMIT_ERROR\",\n\tPAYMENT_REQUIRED: \"PAYMENT_REQUIRED\",\n\tFORBIDDEN: \"FORBIDDEN\",\n\tVERSION_CONFLICT: \"VERSION_CONFLICT\",\n\tNOT_FOUND: \"NOT_FOUND\",\n\t// Tenant lifecycle (CLI surfaces these verbatim)\n\tKEY_ROTATED: \"KEY_ROTATED\",\n\tTENANT_SUSPENDED: \"TENANT_SUSPENDED\",\n\tNO_TENANT_FOR_PROJECT: \"NO_TENANT_FOR_PROJECT\",\n\tINSTANCE_EXISTS: \"INSTANCE_EXISTS\",\n} as const;\n\nexport type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];\n\n/**\n * Structured payload carried on a refused BYO breaking-change deploy. Single-sourced\n * here so subgraphs (thrower), api (body), sdk (typed error), and cli (renderer) all\n * agree on shape. The deploy is still refused — this only describes the manual\n * DROP + rebuild the user must run themselves.\n */\nexport interface ByoBreakingChangeDetails {\n\treasons: string[];\n\tdiff: {\n\t\taddedTables: string[];\n\t\tremovedTables: string[];\n\t\taddedColumns: Record<string, string[]>;\n\t\tbreakingChanges: string[];\n\t};\n\tplan: {\n\t\tschemaName: string;\n\t\tdropStatement: string;\n\t\tstatements: string[];\n\t\tgrantScript: string;\n\t};\n}\n\n/** Base error class for all Secondlayer errors. */\nexport class SecondLayerError extends Error {\n\tpublic code: ErrorCode;\n\tpublic override cause?: unknown;\n\t/** Optional structured payload merged into the HTTP error body (machine-readable hints). */\n\tpublic details?: Record<string, unknown>;\n\n\tconstructor(\n\t\tcode: ErrorCode,\n\t\tmessage: string,\n\t\tcause?: unknown,\n\t\tdetails?: Record<string, unknown>,\n\t) {\n\t\tsuper(message);\n\t\tthis.code = code;\n\t\tthis.cause = cause;\n\t\tthis.details = details;\n\t\tthis.name = this.constructor.name;\n\t\tError.captureStackTrace?.(this, this.constructor);\n\t}\n\n\ttoJSON(): {\n\t\tname: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tstack: string | undefined;\n\t\tcause: unknown;\n\t\tdetails: Record<string, unknown> | undefined;\n\t} {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tcode: this.code,\n\t\t\tmessage: this.message,\n\t\t\tstack: this.stack,\n\t\t\tcause: this.cause,\n\t\t\tdetails: this.details,\n\t\t};\n\t}\n}\n\nexport class NotFoundError extends SecondLayerError {\n\tconstructor(message: string) {\n\t\tsuper(\"NOT_FOUND\", message);\n\t}\n}\n\nexport class ValidationError extends SecondLayerError {\n\tconstructor(message: string, cause?: unknown) {\n\t\tsuper(\"VALIDATION_ERROR\", message, cause);\n\t}\n}\n\nexport class DatabaseError extends SecondLayerError {\n\tconstructor(message: string, cause?: unknown) {\n\t\tsuper(\"DATABASE_ERROR\", message, cause);\n\t}\n}\n\nexport class AuthenticationError extends SecondLayerError {\n\tconstructor(message: string) {\n\t\tsuper(\"AUTHENTICATION_ERROR\", message);\n\t}\n}\n\nexport class AuthorizationError extends SecondLayerError {\n\tconstructor(message: string, details?: Record<string, unknown>) {\n\t\tsuper(\"AUTHORIZATION_ERROR\", message, undefined, details);\n\t}\n}\n\nexport class RateLimitError extends SecondLayerError {\n\tconstructor(message: string) {\n\t\tsuper(\"RATE_LIMIT_ERROR\", message);\n\t}\n}\n\n/**\n * HTTP 402. Carries the x402 challenge (or a retry-later reason) in `details` so\n * the global error handler emits it in the body. The wire `PAYMENT-REQUIRED`\n * header is set separately by the x402 middleware on the challenge path.\n */\nexport class PaymentRequiredError extends SecondLayerError {\n\tconstructor(message: string, details?: Record<string, unknown>) {\n\t\tsuper(\"PAYMENT_REQUIRED\", message, undefined, details);\n\t}\n}\n\nexport class ForbiddenError extends SecondLayerError {\n\tconstructor(message = \"Forbidden\") {\n\t\tsuper(\"FORBIDDEN\", message);\n\t}\n}\n\nexport class VersionConflictError extends SecondLayerError {\n\tpublic currentVersion: string;\n\tpublic expectedVersion: string;\n\n\tconstructor(currentVersion: string, expectedVersion: string) {\n\t\tsuper(\n\t\t\t\"VERSION_CONFLICT\",\n\t\t\t`Version conflict: expected ${expectedVersion}, current ${currentVersion}`,\n\t\t);\n\t\tthis.currentVersion = currentVersion;\n\t\tthis.expectedVersion = expectedVersion;\n\t}\n}\n\nexport class KeyRotatedError extends SecondLayerError {\n\tconstructor(message = \"Token has been rotated\") {\n\t\tsuper(\"KEY_ROTATED\", message);\n\t}\n}\n\nexport class TenantSuspendedError extends SecondLayerError {\n\tconstructor(message = \"Instance is suspended\") {\n\t\tsuper(\"TENANT_SUSPENDED\", message);\n\t}\n}\n\n/** Error code → HTTP status. Used by API middleware for code-based matching\n * (avoids cross-bundle instanceof failures from bunup class duplication). */\n// String literal map — codes don't have to be in the central ErrorCode\n// enum (route-local error classes can supply any code; we just map the\n// HTTP status here). This keeps cross-bundle instanceof failures out of\n// the equation.\nexport const CODE_TO_STATUS: Record<\n\tstring,\n\t400 | 401 | 402 | 403 | 404 | 409 | 422 | 423 | 429\n> = {\n\tAUTHENTICATION_ERROR: 401,\n\tAUTHORIZATION_ERROR: 403,\n\tPAYMENT_REQUIRED: 402,\n\tRATE_LIMIT_ERROR: 429,\n\tFORBIDDEN: 403,\n\tNOT_FOUND: 404,\n\tVALIDATION_ERROR: 400,\n\tKEY_ROTATED: 401,\n\tTENANT_SUSPENDED: 423,\n\tNO_TENANT_FOR_PROJECT: 404,\n\tINSTANCE_EXISTS: 409,\n\tSUBGRAPH_NOT_FOUND: 404,\n\tBYO_BREAKING_CHANGE: 422,\n\tPUBLIC_NAME_TAKEN: 409,\n\tGHOST_KEY_READ_ONLY: 403,\n} as const;\n\nexport function getErrorMessage(err: unknown): string {\n\treturn err instanceof Error ? err.message : String(err);\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "1AD62D3D4C1034E064756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -112,6 +112,7 @@ interface SubgraphsTable {
|
|
|
112
112
|
handler_code: string | null;
|
|
113
113
|
source_code: string | null;
|
|
114
114
|
project_id: string | null;
|
|
115
|
+
visibility: Generated<string>;
|
|
115
116
|
database_url_enc: ColumnType<Buffer | null, Buffer | null | undefined, Buffer | null>;
|
|
116
117
|
created_at: Generated<Date>;
|
|
117
118
|
updated_at: Generated<Date>;
|
|
@@ -176,7 +177,10 @@ interface ApiKeysTable {
|
|
|
176
177
|
}
|
|
177
178
|
interface AccountsTable {
|
|
178
179
|
id: Generated<string>;
|
|
179
|
-
|
|
180
|
+
/** NULL for unclaimed ghost accounts (anonymous self-serve keys). */
|
|
181
|
+
email: string | null;
|
|
182
|
+
/** True for anonymous self-serve accounts until claimed via magic link. */
|
|
183
|
+
ghost: Generated<boolean>;
|
|
180
184
|
plan: Generated<string>;
|
|
181
185
|
display_name: string | null;
|
|
182
186
|
bio: string | null;
|
|
@@ -196,6 +200,19 @@ interface SessionsTable {
|
|
|
196
200
|
last_used_at: Date | null;
|
|
197
201
|
created_at: Generated<Date>;
|
|
198
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* One-time claim tokens for ghost accounts. The raw token only ever appears in
|
|
205
|
+
* the claim URL returned at mint time; we store its sha256. A used token marks
|
|
206
|
+
* the account as claimed (or merged into an existing account).
|
|
207
|
+
*/
|
|
208
|
+
interface ClaimTokensTable {
|
|
209
|
+
id: Generated<string>;
|
|
210
|
+
account_id: string;
|
|
211
|
+
token_hash: string;
|
|
212
|
+
created_at: Generated<Date>;
|
|
213
|
+
expires_at: Date;
|
|
214
|
+
used_at: Date | null;
|
|
215
|
+
}
|
|
199
216
|
interface MagicLinksTable {
|
|
200
217
|
id: Generated<string>;
|
|
201
218
|
email: string;
|
|
@@ -613,6 +630,7 @@ interface Database {
|
|
|
613
630
|
accounts: AccountsTable;
|
|
614
631
|
sessions: SessionsTable;
|
|
615
632
|
magic_links: MagicLinksTable;
|
|
633
|
+
claim_tokens: ClaimTokensTable;
|
|
616
634
|
usage_daily: UsageDailyTable;
|
|
617
635
|
usage_snapshots: UsageSnapshotsTable;
|
|
618
636
|
account_insights: AccountInsightsTable;
|
|
@@ -655,11 +673,27 @@ interface Database {
|
|
|
655
673
|
bns_names: BnsNamesTable;
|
|
656
674
|
bns_namespaces: BnsNamespacesTable;
|
|
657
675
|
service_heartbeats: ServiceHeartbeatsTable;
|
|
676
|
+
x402_payments: X402PaymentsTable;
|
|
658
677
|
}
|
|
659
678
|
interface ServiceHeartbeatsTable {
|
|
660
679
|
name: string;
|
|
661
680
|
updated_at: Generated<Date>;
|
|
662
681
|
}
|
|
682
|
+
/** x402 pay-per-request ledger (control plane). One row per settled payment,
|
|
683
|
+
* keyed by challenge nonce + settled txid. `state` tracks confirmed-tier
|
|
684
|
+
* settlement and post-serve reorg reversal. */
|
|
685
|
+
interface X402PaymentsTable {
|
|
686
|
+
id: Generated<string>;
|
|
687
|
+
nonce: string;
|
|
688
|
+
txid: string;
|
|
689
|
+
asset: string;
|
|
690
|
+
amount: string;
|
|
691
|
+
payer: string;
|
|
692
|
+
surface: string;
|
|
693
|
+
state: Generated<"pending" | "confirmed" | "reverted">;
|
|
694
|
+
created_at: Generated<Date>;
|
|
695
|
+
updated_at: Generated<Date>;
|
|
696
|
+
}
|
|
663
697
|
type TenantStatus = "provisioning" | "active" | "limit_warning" | "paused_limit" | "suspended" | "error" | "deleted";
|
|
664
698
|
interface TenantsTable {
|
|
665
699
|
id: Generated<string>;
|
|
@@ -779,6 +813,8 @@ type Account = Selectable<AccountsTable>;
|
|
|
779
813
|
type InsertAccount = Insertable<AccountsTable>;
|
|
780
814
|
type MagicLink = Selectable<MagicLinksTable>;
|
|
781
815
|
type InsertMagicLink = Insertable<MagicLinksTable>;
|
|
816
|
+
type ClaimToken = Selectable<ClaimTokensTable>;
|
|
817
|
+
type InsertClaimToken = Insertable<ClaimTokensTable>;
|
|
782
818
|
type Session = Selectable<SessionsTable>;
|
|
783
819
|
type InsertSession = Insertable<SessionsTable>;
|
|
784
820
|
type UsageDaily = Selectable<UsageDailyTable>;
|
|
@@ -1783,6 +1819,7 @@ declare const TABLE_TO_DB: {
|
|
|
1783
1819
|
api_keys: string
|
|
1784
1820
|
sessions: string
|
|
1785
1821
|
magic_links: string
|
|
1822
|
+
claim_tokens: string
|
|
1786
1823
|
usage_daily: string
|
|
1787
1824
|
usage_snapshots: string
|
|
1788
1825
|
account_insights: string
|
|
@@ -1809,6 +1846,7 @@ declare const TABLE_TO_DB: {
|
|
|
1809
1846
|
subgraph_usage_daily: string
|
|
1810
1847
|
subgraph_processing_stats: string
|
|
1811
1848
|
subgraph_table_snapshots: string
|
|
1849
|
+
x402_payments: string
|
|
1812
1850
|
service_heartbeats: string
|
|
1813
1851
|
};
|
|
1814
1852
|
interface DbSplitStatus {
|
|
@@ -1884,6 +1922,7 @@ declare const ErrorCodes: {
|
|
|
1884
1922
|
readonly AUTHENTICATION_ERROR: "AUTHENTICATION_ERROR"
|
|
1885
1923
|
readonly AUTHORIZATION_ERROR: "AUTHORIZATION_ERROR"
|
|
1886
1924
|
readonly RATE_LIMIT_ERROR: "RATE_LIMIT_ERROR"
|
|
1925
|
+
readonly PAYMENT_REQUIRED: "PAYMENT_REQUIRED"
|
|
1887
1926
|
readonly FORBIDDEN: "FORBIDDEN"
|
|
1888
1927
|
readonly VERSION_CONFLICT: "VERSION_CONFLICT"
|
|
1889
1928
|
readonly NOT_FOUND: "NOT_FOUND"
|
|
@@ -1948,6 +1987,14 @@ declare class AuthorizationError extends SecondLayerError {
|
|
|
1948
1987
|
declare class RateLimitError extends SecondLayerError {
|
|
1949
1988
|
constructor(message: string);
|
|
1950
1989
|
}
|
|
1990
|
+
/**
|
|
1991
|
+
* HTTP 402. Carries the x402 challenge (or a retry-later reason) in `details` so
|
|
1992
|
+
* the global error handler emits it in the body. The wire `PAYMENT-REQUIRED`
|
|
1993
|
+
* header is set separately by the x402 middleware on the challenge path.
|
|
1994
|
+
*/
|
|
1995
|
+
declare class PaymentRequiredError extends SecondLayerError {
|
|
1996
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
1997
|
+
}
|
|
1951
1998
|
declare class ForbiddenError extends SecondLayerError {
|
|
1952
1999
|
constructor(message?: string);
|
|
1953
2000
|
}
|
|
@@ -1964,7 +2011,7 @@ declare class TenantSuspendedError extends SecondLayerError {
|
|
|
1964
2011
|
}
|
|
1965
2012
|
/** Error code → HTTP status. Used by API middleware for code-based matching
|
|
1966
2013
|
* (avoids cross-bundle instanceof failures from bunup class duplication). */
|
|
1967
|
-
declare const CODE_TO_STATUS: Record<string, 400 | 401 | 403 | 404 | 409 | 422 | 423 | 429>;
|
|
2014
|
+
declare const CODE_TO_STATUS: Record<string, 400 | 401 | 402 | 403 | 404 | 409 | 422 | 423 | 429>;
|
|
1968
2015
|
declare function getErrorMessage(err: unknown): string;
|
|
1969
2016
|
declare class Logger {
|
|
1970
2017
|
private _level?;
|
|
@@ -2094,12 +2141,20 @@ interface DeploySubgraphRequest {
|
|
|
2094
2141
|
databaseUrl?: string;
|
|
2095
2142
|
/** Validate the connection + print the DDL/grant plan without deploying. */
|
|
2096
2143
|
dryRun?: boolean;
|
|
2144
|
+
/**
|
|
2145
|
+
* Read visibility. Server-side defaults: managed deploys → public (anon
|
|
2146
|
+
* reads on /v1/subgraphs, name claimed in the global public namespace);
|
|
2147
|
+
* BYO-database deploys → private (public reads hit the user's own
|
|
2148
|
+
* Postgres, so going public is an explicit choice).
|
|
2149
|
+
*/
|
|
2150
|
+
visibility?: "public" | "private";
|
|
2097
2151
|
}
|
|
2098
2152
|
declare const DeploySubgraphRequestSchema: z3.ZodType<DeploySubgraphRequest>;
|
|
2099
2153
|
interface DeploySubgraphResponse {
|
|
2100
2154
|
action: "created" | "unchanged" | "handler_updated" | "updated" | "reindexed";
|
|
2101
2155
|
subgraphId: string;
|
|
2102
2156
|
version: string;
|
|
2157
|
+
visibility?: "public" | "private";
|
|
2103
2158
|
message: string;
|
|
2104
2159
|
operationId?: string;
|
|
2105
2160
|
reindexStarted?: boolean;
|
|
@@ -2127,6 +2182,7 @@ interface SubgraphSummary {
|
|
|
2127
2182
|
resourceWarning?: SubgraphResourceWarning;
|
|
2128
2183
|
gapCount: number;
|
|
2129
2184
|
integrity: "complete" | "gaps_detected";
|
|
2185
|
+
visibility?: "public" | "private";
|
|
2130
2186
|
createdAt: string;
|
|
2131
2187
|
}
|
|
2132
2188
|
interface SubgraphGapRange {
|
|
@@ -2172,6 +2228,7 @@ interface SubgraphDetail {
|
|
|
2172
2228
|
version: string;
|
|
2173
2229
|
schemaHash?: string;
|
|
2174
2230
|
status: string;
|
|
2231
|
+
visibility?: "public" | "private";
|
|
2175
2232
|
lastProcessedBlock: number;
|
|
2176
2233
|
description?: string;
|
|
2177
2234
|
sources?: Record<string, unknown>;
|
|
@@ -2500,6 +2557,8 @@ interface SubgraphAgentSchema {
|
|
|
2500
2557
|
tables: Record<string, {
|
|
2501
2558
|
endpoint: string
|
|
2502
2559
|
countEndpoint: string
|
|
2560
|
+
aggregateEndpoint?: string
|
|
2561
|
+
streamEndpoint?: string
|
|
2503
2562
|
rowCount: number
|
|
2504
2563
|
columns: SubgraphDetail["tables"][string]["columns"]
|
|
2505
2564
|
indexes?: string[][]
|
|
@@ -2672,4 +2731,4 @@ interface ChainReorgRollbackEnvelope {
|
|
|
2672
2731
|
}
|
|
2673
2732
|
/** Any chain-subscription webhook body. Discriminate on `action`. */
|
|
2674
2733
|
type ChainWebhookEnvelope = ChainApplyEnvelope | ChainReorgRollbackEnvelope;
|
|
2675
|
-
export { validateSubscriptionFilterForTable, sql, setMigrationRole, parseJsonb, onControlPlane, onChainPlane, logger, jsonb, isPox4DecoderEnabled, getTargetDb, getSourceDb, getRawClientFor, getRawClient, getMigrationRole, getErrorMessage, getEnv, getDbSplitStatus, getDb, generateSubgraphSpec, generateSubgraphOpenApi, generateSubgraphMarkdown, generateSubgraphAgentSchema, formatSubscriptionSchemaErrors, finalizedBurnHeight, encodeStreamsCursor, exports_ed25519 as ed25519, decodeStreamsCursor, exports_hmac as crypto, closeDb, assertDbSplit, VersionConflictError, ValidationError, UsageSnapshotsTable, UsageSnapshot, UsageDailyTable, UsageDaily, UpdateTransaction, UpdateTenantUsageMonthly, UpdateTenantComputeAddon, UpdateTenant, UpdateSubscriptionRequestSchema, UpdateSubscriptionRequest, UpdateSubscriptionOutbox, UpdateSubscription, UpdateSubgraphOperation, UpdateSubgraph, UpdateProject, UpdateIndexProgress, UpdateEvent, UpdateContract, UpdateChatSession, UpdateBlock, UpdateApiKey, UpdateAccountSpendCap, TriggerEvaluatorStateTable, TriggerEvaluatorState, TransactionsTable, TransactionsArchiveTable, Transaction, TenantsTable, TenantUsageMonthlyTable, TenantUsageMonthly, TenantSuspendedError, TenantStatus, TenantComputeAddonsTable, TenantComputeAddon, Tenant, TeamMembersTable, TeamMember, TeamInvitationsTable, TeamInvitation, TABLE_TO_DB, SubscriptionsTable, SubscriptionSummary, SubscriptionStatusSchema, SubscriptionStatus, SubscriptionSchemaTables, SubscriptionSchemaTable, SubscriptionSchemaColumn, SubscriptionRuntimeSchema, SubscriptionRuntime, SubscriptionOutboxTable, SubscriptionOutbox, SubscriptionKind, SubscriptionFormatSchema, SubscriptionFormat, SubscriptionFilterSchema, SubscriptionFilterPrimitiveSchema, SubscriptionFilterPrimitive, SubscriptionFilterOperatorSchema, SubscriptionFilterOperator, SubscriptionFilterClauseSchema, SubscriptionFilterClause, SubscriptionFilter, SubscriptionDetail, SubscriptionDelivery, SubscriptionDeliveriesTable, Subscription, SubgraphsTable, SubgraphUsageDailyTable, SubgraphUsageDaily, SubgraphTableSnapshotsTable, SubgraphSyncInfo, SubgraphSummary, SubgraphSpecOptions, SubgraphSpecFormat, SubgraphResourceWarning, SubgraphQueryParams, SubgraphProcessingStatsTable, SubgraphOperationsTable, SubgraphOperationStatus, SubgraphOperationKind, SubgraphOperation, SubgraphHealthSnapshotsTable, SubgraphHealthSnapshot, SubgraphGapsTable, SubgraphGapsResponse, SubgraphGapRange, SubgraphGapEntry, SubgraphGap, SubgraphDetail, SubgraphAggregateResponse, SubgraphAggregateParams, SubgraphAgentSchema, Subgraph, StxTransferFilterSchema, StxTransferFilter, StxMintFilterSchema, StxMintFilter, StxLockFilterSchema, StxLockFilter, StxBurnFilterSchema, StxBurnFilter, StreamsEventType, StreamsDbEventType, StreamsCursor, SessionsTable, Session, ServiceHeartbeatsTable, SecondLayerError, SbtcTokenEventsTable, SbtcTokenEventType, SbtcSupplySnapshotsTable, SbtcEventsTable, SbtcEventTopic, SUBSCRIPTION_STATUSES, SUBSCRIPTION_RUNTIMES, SUBSCRIPTION_FORMATS, SUBSCRIPTION_FILTER_OPERATORS, STREAMS_TO_DB_EVENT_TYPES, STREAMS_EVENT_TYPES, STREAMS_DB_EVENT_TYPES, SOURCE_READ_TYPES, SOURCE_READ_PKS, SOURCE_READ_COLUMNS, RotateSecretResponse, ReplaySubscriptionRequestSchema, ReplaySubscriptionRequest, ReplayResult, ReindexResponse, RateLimitError, ProvisioningAuditStatus, ProvisioningAuditLogTable, ProvisioningAuditLog, ProvisioningAuditEvent, ProjectsTable, Project, ProcessedStripeEventsTable, PrintEventFilterSchema, PrintEventFilter, Pox4SignersDailyTable, Pox4FunctionName, Pox4CyclesDailyTable, Pox4CallsTable, ParsedUpdateSubscriptionRequest, ParsedReplaySubscriptionRequest, ParsedCreateSubscriptionRequest, OutboxStatus, NumericAsText, NotFoundError, NftTransferFilterSchema, NftTransferFilter, NftMintFilterSchema, NftMintFilter, NftBurnFilterSchema, NftBurnFilter, MigrationRole, MempoolTransactionsTable, MempoolTransaction, MagicLinksTable, MagicLink, L2DecoderCheckpointsTable, KeyRotatedError, InsertTransaction, InsertTenantUsageMonthly, InsertTenantComputeAddon, InsertTenant, InsertTeamMember, InsertTeamInvitation, InsertSubscriptionOutbox, InsertSubscriptionDelivery, InsertSubscription, InsertSubgraphUsageDaily, InsertSubgraphOperation, InsertSubgraphHealthSnapshot, InsertSubgraphGap, InsertSubgraph, InsertSession, InsertProvisioningAuditLog, InsertProject, InsertMempoolTransaction, InsertMagicLink, InsertIndexProgress, InsertEvent, InsertContract, InsertChatSession, InsertChatMessage, InsertBlock, InsertApiKey, InsertAccountSpendCap, InsertAccountInsight, InsertAccountAgentRun, InsertAccount, IndexProgressTable, IndexProgress, IndexPrimaryKey, IndexColumnType, IndexColumn, FtTransferFilterSchema, FtTransferFilter, FtMintFilterSchema, FtMintFilter, FtBurnFilterSchema, FtBurnFilter, ForbiddenError, EventsTable, EventsArchiveTable, EventFilterSchema, EventFilter, Event, ErrorCodes, ErrorCode, Env, EMPTY_RANGE_EVENT_INDEX_SENTINEL, DeploySubgraphResponse, DeploySubgraphRequestSchema, DeploySubgraphRequest, DeliveryRow, DecodedEventsTable, DecodedEventType, DeadRow, DeadLetterEventsTable, DbSplitStatus, DbReadRow, DbPlane, DatabaseError, Database, DEFAULT_BTC_CONFIRMATIONS, DECODED_EVENT_TYPES, DB_TO_STREAMS_EVENT_TYPE, CreateSubscriptionResponse, CreateSubscriptionRequestSchema, CreateSubscriptionRequest, ContractsTable, ContractDeployFilterSchema, ContractDeployFilter, ContractCallFilterSchema, ContractCallFilter, Contract, ChatSessionsTable, ChatSession, ChatMessagesTable, ChatMessage, ChainWebhookEnvelope, ChainReorgsTable, ChainReorgRollbackEnvelope, ChainReorgOrphanedEntry, ChainApplyEnvelope, CODE_TO_STATUS, CHAIN_TRIGGER_TYPES, CHAIN_TRIGGER_FIELDS, ByoBreakingChangeDetails, BurnBlockRewardsTable, BurnBlockRewardSlotsTable, BnsNamespacesTable, BnsNamespaceEventsTable, BnsNamespaceEventStatus, BnsNamesTable, BnsNameEventsTable, BnsNameEventTopic, BnsMarketplaceEventsTable, BnsMarketplaceAction, BlocksTable, Block, AuthorizationError, AuthenticationError, ApiKeysTable, ApiKey, AccountsTable, AccountSpendCapsTable, AccountSpendCap, AccountInsightsTable, AccountInsight, AccountAgentRunsTable, AccountAgentRun, Account };
|
|
2734
|
+
export { validateSubscriptionFilterForTable, sql, setMigrationRole, parseJsonb, onControlPlane, onChainPlane, logger, jsonb, isPox4DecoderEnabled, getTargetDb, getSourceDb, getRawClientFor, getRawClient, getMigrationRole, getErrorMessage, getEnv, getDbSplitStatus, getDb, generateSubgraphSpec, generateSubgraphOpenApi, generateSubgraphMarkdown, generateSubgraphAgentSchema, formatSubscriptionSchemaErrors, finalizedBurnHeight, encodeStreamsCursor, exports_ed25519 as ed25519, decodeStreamsCursor, exports_hmac as crypto, closeDb, assertDbSplit, X402PaymentsTable, VersionConflictError, ValidationError, UsageSnapshotsTable, UsageSnapshot, UsageDailyTable, UsageDaily, UpdateTransaction, UpdateTenantUsageMonthly, UpdateTenantComputeAddon, UpdateTenant, UpdateSubscriptionRequestSchema, UpdateSubscriptionRequest, UpdateSubscriptionOutbox, UpdateSubscription, UpdateSubgraphOperation, UpdateSubgraph, UpdateProject, UpdateIndexProgress, UpdateEvent, UpdateContract, UpdateChatSession, UpdateBlock, UpdateApiKey, UpdateAccountSpendCap, TriggerEvaluatorStateTable, TriggerEvaluatorState, TransactionsTable, TransactionsArchiveTable, Transaction, TenantsTable, TenantUsageMonthlyTable, TenantUsageMonthly, TenantSuspendedError, TenantStatus, TenantComputeAddonsTable, TenantComputeAddon, Tenant, TeamMembersTable, TeamMember, TeamInvitationsTable, TeamInvitation, TABLE_TO_DB, SubscriptionsTable, SubscriptionSummary, SubscriptionStatusSchema, SubscriptionStatus, SubscriptionSchemaTables, SubscriptionSchemaTable, SubscriptionSchemaColumn, SubscriptionRuntimeSchema, SubscriptionRuntime, SubscriptionOutboxTable, SubscriptionOutbox, SubscriptionKind, SubscriptionFormatSchema, SubscriptionFormat, SubscriptionFilterSchema, SubscriptionFilterPrimitiveSchema, SubscriptionFilterPrimitive, SubscriptionFilterOperatorSchema, SubscriptionFilterOperator, SubscriptionFilterClauseSchema, SubscriptionFilterClause, SubscriptionFilter, SubscriptionDetail, SubscriptionDelivery, SubscriptionDeliveriesTable, Subscription, SubgraphsTable, SubgraphUsageDailyTable, SubgraphUsageDaily, SubgraphTableSnapshotsTable, SubgraphSyncInfo, SubgraphSummary, SubgraphSpecOptions, SubgraphSpecFormat, SubgraphResourceWarning, SubgraphQueryParams, SubgraphProcessingStatsTable, SubgraphOperationsTable, SubgraphOperationStatus, SubgraphOperationKind, SubgraphOperation, SubgraphHealthSnapshotsTable, SubgraphHealthSnapshot, SubgraphGapsTable, SubgraphGapsResponse, SubgraphGapRange, SubgraphGapEntry, SubgraphGap, SubgraphDetail, SubgraphAggregateResponse, SubgraphAggregateParams, SubgraphAgentSchema, Subgraph, StxTransferFilterSchema, StxTransferFilter, StxMintFilterSchema, StxMintFilter, StxLockFilterSchema, StxLockFilter, StxBurnFilterSchema, StxBurnFilter, StreamsEventType, StreamsDbEventType, StreamsCursor, SessionsTable, Session, ServiceHeartbeatsTable, SecondLayerError, SbtcTokenEventsTable, SbtcTokenEventType, SbtcSupplySnapshotsTable, SbtcEventsTable, SbtcEventTopic, SUBSCRIPTION_STATUSES, SUBSCRIPTION_RUNTIMES, SUBSCRIPTION_FORMATS, SUBSCRIPTION_FILTER_OPERATORS, STREAMS_TO_DB_EVENT_TYPES, STREAMS_EVENT_TYPES, STREAMS_DB_EVENT_TYPES, SOURCE_READ_TYPES, SOURCE_READ_PKS, SOURCE_READ_COLUMNS, RotateSecretResponse, ReplaySubscriptionRequestSchema, ReplaySubscriptionRequest, ReplayResult, ReindexResponse, RateLimitError, ProvisioningAuditStatus, ProvisioningAuditLogTable, ProvisioningAuditLog, ProvisioningAuditEvent, ProjectsTable, Project, ProcessedStripeEventsTable, PrintEventFilterSchema, PrintEventFilter, Pox4SignersDailyTable, Pox4FunctionName, Pox4CyclesDailyTable, Pox4CallsTable, PaymentRequiredError, ParsedUpdateSubscriptionRequest, ParsedReplaySubscriptionRequest, ParsedCreateSubscriptionRequest, OutboxStatus, NumericAsText, NotFoundError, NftTransferFilterSchema, NftTransferFilter, NftMintFilterSchema, NftMintFilter, NftBurnFilterSchema, NftBurnFilter, MigrationRole, MempoolTransactionsTable, MempoolTransaction, MagicLinksTable, MagicLink, L2DecoderCheckpointsTable, KeyRotatedError, InsertTransaction, InsertTenantUsageMonthly, InsertTenantComputeAddon, InsertTenant, InsertTeamMember, InsertTeamInvitation, InsertSubscriptionOutbox, InsertSubscriptionDelivery, InsertSubscription, InsertSubgraphUsageDaily, InsertSubgraphOperation, InsertSubgraphHealthSnapshot, InsertSubgraphGap, InsertSubgraph, InsertSession, InsertProvisioningAuditLog, InsertProject, InsertMempoolTransaction, InsertMagicLink, InsertIndexProgress, InsertEvent, InsertContract, InsertClaimToken, InsertChatSession, InsertChatMessage, InsertBlock, InsertApiKey, InsertAccountSpendCap, InsertAccountInsight, InsertAccountAgentRun, InsertAccount, IndexProgressTable, IndexProgress, IndexPrimaryKey, IndexColumnType, IndexColumn, FtTransferFilterSchema, FtTransferFilter, FtMintFilterSchema, FtMintFilter, FtBurnFilterSchema, FtBurnFilter, ForbiddenError, EventsTable, EventsArchiveTable, EventFilterSchema, EventFilter, Event, ErrorCodes, ErrorCode, Env, EMPTY_RANGE_EVENT_INDEX_SENTINEL, DeploySubgraphResponse, DeploySubgraphRequestSchema, DeploySubgraphRequest, DeliveryRow, DecodedEventsTable, DecodedEventType, DeadRow, DeadLetterEventsTable, DbSplitStatus, DbReadRow, DbPlane, DatabaseError, Database, DEFAULT_BTC_CONFIRMATIONS, DECODED_EVENT_TYPES, DB_TO_STREAMS_EVENT_TYPE, CreateSubscriptionResponse, CreateSubscriptionRequestSchema, CreateSubscriptionRequest, ContractsTable, ContractDeployFilterSchema, ContractDeployFilter, ContractCallFilterSchema, ContractCallFilter, Contract, ClaimTokensTable, ClaimToken, ChatSessionsTable, ChatSession, ChatMessagesTable, ChatMessage, ChainWebhookEnvelope, ChainReorgsTable, ChainReorgRollbackEnvelope, ChainReorgOrphanedEntry, ChainApplyEnvelope, CODE_TO_STATUS, CHAIN_TRIGGER_TYPES, CHAIN_TRIGGER_FIELDS, ByoBreakingChangeDetails, BurnBlockRewardsTable, BurnBlockRewardSlotsTable, BnsNamespacesTable, BnsNamespaceEventsTable, BnsNamespaceEventStatus, BnsNamesTable, BnsNameEventsTable, BnsNameEventTopic, BnsMarketplaceEventsTable, BnsMarketplaceAction, BlocksTable, Block, AuthorizationError, AuthenticationError, ApiKeysTable, ApiKey, AccountsTable, AccountSpendCapsTable, AccountSpendCap, AccountInsightsTable, AccountInsight, AccountAgentRunsTable, AccountAgentRun, Account };
|
package/dist/src/index.js
CHANGED
|
@@ -672,6 +672,7 @@ var TABLE_TO_DB = {
|
|
|
672
672
|
api_keys: "target",
|
|
673
673
|
sessions: "target",
|
|
674
674
|
magic_links: "target",
|
|
675
|
+
claim_tokens: "target",
|
|
675
676
|
usage_daily: "target",
|
|
676
677
|
usage_snapshots: "target",
|
|
677
678
|
account_insights: "target",
|
|
@@ -698,6 +699,7 @@ var TABLE_TO_DB = {
|
|
|
698
699
|
subgraph_usage_daily: "target",
|
|
699
700
|
subgraph_processing_stats: "target",
|
|
700
701
|
subgraph_table_snapshots: "target",
|
|
702
|
+
x402_payments: "target",
|
|
701
703
|
service_heartbeats: "both"
|
|
702
704
|
};
|
|
703
705
|
|
|
@@ -864,6 +866,7 @@ var ErrorCodes = {
|
|
|
864
866
|
AUTHENTICATION_ERROR: "AUTHENTICATION_ERROR",
|
|
865
867
|
AUTHORIZATION_ERROR: "AUTHORIZATION_ERROR",
|
|
866
868
|
RATE_LIMIT_ERROR: "RATE_LIMIT_ERROR",
|
|
869
|
+
PAYMENT_REQUIRED: "PAYMENT_REQUIRED",
|
|
867
870
|
FORBIDDEN: "FORBIDDEN",
|
|
868
871
|
VERSION_CONFLICT: "VERSION_CONFLICT",
|
|
869
872
|
NOT_FOUND: "NOT_FOUND",
|
|
@@ -933,6 +936,12 @@ class RateLimitError extends SecondLayerError {
|
|
|
933
936
|
}
|
|
934
937
|
}
|
|
935
938
|
|
|
939
|
+
class PaymentRequiredError extends SecondLayerError {
|
|
940
|
+
constructor(message, details) {
|
|
941
|
+
super("PAYMENT_REQUIRED", message, undefined, details);
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
|
|
936
945
|
class ForbiddenError extends SecondLayerError {
|
|
937
946
|
constructor(message = "Forbidden") {
|
|
938
947
|
super("FORBIDDEN", message);
|
|
@@ -963,6 +972,7 @@ class TenantSuspendedError extends SecondLayerError {
|
|
|
963
972
|
var CODE_TO_STATUS = {
|
|
964
973
|
AUTHENTICATION_ERROR: 401,
|
|
965
974
|
AUTHORIZATION_ERROR: 403,
|
|
975
|
+
PAYMENT_REQUIRED: 402,
|
|
966
976
|
RATE_LIMIT_ERROR: 429,
|
|
967
977
|
FORBIDDEN: 403,
|
|
968
978
|
NOT_FOUND: 404,
|
|
@@ -972,7 +982,9 @@ var CODE_TO_STATUS = {
|
|
|
972
982
|
NO_TENANT_FOR_PROJECT: 404,
|
|
973
983
|
INSTANCE_EXISTS: 409,
|
|
974
984
|
SUBGRAPH_NOT_FOUND: 404,
|
|
975
|
-
BYO_BREAKING_CHANGE: 422
|
|
985
|
+
BYO_BREAKING_CHANGE: 422,
|
|
986
|
+
PUBLIC_NAME_TAKEN: 409,
|
|
987
|
+
GHOST_KEY_READ_ONLY: 403
|
|
976
988
|
};
|
|
977
989
|
function getErrorMessage(err) {
|
|
978
990
|
return err instanceof Error ? err.message : String(err);
|
|
@@ -1094,7 +1106,8 @@ var DeploySubgraphRequestSchema = z3.object({
|
|
|
1094
1106
|
startBlock: z3.number().int().nonnegative().optional(),
|
|
1095
1107
|
sourceCode: z3.string().max(1048576, "source code exceeds 1MB limit").optional(),
|
|
1096
1108
|
databaseUrl: z3.string().url().refine((u) => u.startsWith("postgres://") || u.startsWith("postgresql://"), "must be a postgres:// connection string").optional(),
|
|
1097
|
-
dryRun: z3.boolean().optional()
|
|
1109
|
+
dryRun: z3.boolean().optional(),
|
|
1110
|
+
visibility: z3.enum(["public", "private"]).optional()
|
|
1098
1111
|
});
|
|
1099
1112
|
|
|
1100
1113
|
// src/schemas/subscriptions.ts
|
|
@@ -1414,18 +1427,23 @@ function validateSubscriptionFilterForTable(input) {
|
|
|
1414
1427
|
// src/subgraphs/spec.ts
|
|
1415
1428
|
var SYSTEM_COLUMNS = ["_id", "_block_height", "_tx_id", "_created_at"];
|
|
1416
1429
|
var BASE_QUERY_PARAMS = ["_limit", "_offset", "_sort", "_order", "_fields"];
|
|
1430
|
+
var PUBLIC_BASE_QUERY_PARAMS = ["_limit", "cursor", "_order", "_fields"];
|
|
1417
1431
|
var COMPARISON_OPS = ["neq", "gt", "gte", "lt", "lte"];
|
|
1432
|
+
function isPublicRead(detail) {
|
|
1433
|
+
return detail.visibility === "public";
|
|
1434
|
+
}
|
|
1418
1435
|
function generatedAt(options) {
|
|
1419
1436
|
return options.generatedAt ?? new Date().toISOString();
|
|
1420
1437
|
}
|
|
1421
1438
|
function normalizeServerUrl(serverUrl) {
|
|
1422
1439
|
return (serverUrl ?? "https://api.secondlayer.tools").replace(/\/+$/, "");
|
|
1423
1440
|
}
|
|
1424
|
-
function tablePath(subgraphName, tableName) {
|
|
1425
|
-
|
|
1441
|
+
function tablePath(subgraphName, tableName, publicRead) {
|
|
1442
|
+
const base = publicRead ? "/v1/subgraphs" : "/api/subgraphs";
|
|
1443
|
+
return `${base}/${subgraphName}/${tableName}`;
|
|
1426
1444
|
}
|
|
1427
|
-
function countPath(subgraphName, tableName) {
|
|
1428
|
-
return `${tablePath(subgraphName, tableName)}/count`;
|
|
1445
|
+
function countPath(subgraphName, tableName, publicRead) {
|
|
1446
|
+
return `${tablePath(subgraphName, tableName, publicRead)}/count`;
|
|
1429
1447
|
}
|
|
1430
1448
|
function isTextLike(type) {
|
|
1431
1449
|
return type === "text" || type === "principal" || type === "timestamp";
|
|
@@ -1512,8 +1530,8 @@ function filterNames(table) {
|
|
|
1512
1530
|
}
|
|
1513
1531
|
return result;
|
|
1514
1532
|
}
|
|
1515
|
-
function queryParameters(table) {
|
|
1516
|
-
const params = [...BASE_QUERY_PARAMS];
|
|
1533
|
+
function queryParameters(table, publicRead) {
|
|
1534
|
+
const params = publicRead ? [...PUBLIC_BASE_QUERY_PARAMS] : [...BASE_QUERY_PARAMS];
|
|
1517
1535
|
if (searchableColumns(table).length > 0)
|
|
1518
1536
|
params.push("_search");
|
|
1519
1537
|
return params;
|
|
@@ -1534,8 +1552,24 @@ function openApiParameter(name2, description, schema = { type: "string" }) {
|
|
|
1534
1552
|
schema
|
|
1535
1553
|
};
|
|
1536
1554
|
}
|
|
1537
|
-
function tableParameters(table) {
|
|
1538
|
-
const parameters = [
|
|
1555
|
+
function tableParameters(table, publicRead) {
|
|
1556
|
+
const parameters = publicRead ? [
|
|
1557
|
+
openApiParameter("_limit", "Maximum rows to return.", {
|
|
1558
|
+
type: "integer",
|
|
1559
|
+
default: 50,
|
|
1560
|
+
minimum: 1,
|
|
1561
|
+
maximum: 1000
|
|
1562
|
+
}),
|
|
1563
|
+
openApiParameter("cursor", "Resume token from next_cursor (keyset pagination on _id).", { type: "string" }),
|
|
1564
|
+
openApiParameter("_order", "Sort direction (_id keyset).", {
|
|
1565
|
+
type: "string",
|
|
1566
|
+
enum: ["asc", "desc"],
|
|
1567
|
+
default: "asc"
|
|
1568
|
+
}),
|
|
1569
|
+
openApiParameter("_fields", "Comma-separated columns to include.", {
|
|
1570
|
+
type: "string"
|
|
1571
|
+
})
|
|
1572
|
+
] : [
|
|
1539
1573
|
openApiParameter("_limit", "Maximum rows to return.", {
|
|
1540
1574
|
type: "integer",
|
|
1541
1575
|
default: 50,
|
|
@@ -1589,19 +1623,24 @@ function tableParameters(table) {
|
|
|
1589
1623
|
}
|
|
1590
1624
|
function generateSubgraphAgentSchema(detail, options = {}) {
|
|
1591
1625
|
const serverUrl = normalizeServerUrl(options.serverUrl);
|
|
1626
|
+
const publicRead = isPublicRead(detail);
|
|
1592
1627
|
const tables = {};
|
|
1593
1628
|
for (const [tableName, table] of Object.entries(detail.tables)) {
|
|
1594
|
-
const path = tablePath(detail.name, tableName);
|
|
1629
|
+
const path = tablePath(detail.name, tableName, publicRead);
|
|
1595
1630
|
tables[tableName] = {
|
|
1596
1631
|
endpoint: `${serverUrl}${path}`,
|
|
1597
|
-
countEndpoint: `${serverUrl}${countPath(detail.name, tableName)}`,
|
|
1632
|
+
countEndpoint: `${serverUrl}${countPath(detail.name, tableName, publicRead)}`,
|
|
1633
|
+
...publicRead ? {
|
|
1634
|
+
aggregateEndpoint: `${serverUrl}${path}/aggregate`,
|
|
1635
|
+
streamEndpoint: `${serverUrl}${path}/stream`
|
|
1636
|
+
} : {},
|
|
1598
1637
|
rowCount: table.rowCount,
|
|
1599
1638
|
columns: table.columns,
|
|
1600
1639
|
...table.indexes ? { indexes: table.indexes } : {},
|
|
1601
1640
|
...table.uniqueKeys ? { uniqueKeys: table.uniqueKeys } : {},
|
|
1602
1641
|
query: {
|
|
1603
|
-
parameters: queryParameters(table),
|
|
1604
|
-
sortable: selectableColumns(table),
|
|
1642
|
+
parameters: queryParameters(table, publicRead),
|
|
1643
|
+
sortable: publicRead ? [] : selectableColumns(table),
|
|
1605
1644
|
selectable: selectableColumns(table),
|
|
1606
1645
|
searchable: searchableColumns(table),
|
|
1607
1646
|
filters: filterNames(table)
|
|
@@ -1609,7 +1648,7 @@ function generateSubgraphAgentSchema(detail, options = {}) {
|
|
|
1609
1648
|
examples: {
|
|
1610
1649
|
list: rowExample(table),
|
|
1611
1650
|
count: { count: table.rowCount },
|
|
1612
|
-
curl: `curl '${serverUrl}${path}?_limit=10&_sort=_block_height&_order=desc'`
|
|
1651
|
+
curl: publicRead ? `curl '${serverUrl}${path}?_limit=10&_order=desc'` : `curl '${serverUrl}${path}?_limit=10&_sort=_block_height&_order=desc'`
|
|
1613
1652
|
}
|
|
1614
1653
|
};
|
|
1615
1654
|
}
|
|
@@ -1626,6 +1665,7 @@ function generateSubgraphAgentSchema(detail, options = {}) {
|
|
|
1626
1665
|
}
|
|
1627
1666
|
function generateSubgraphOpenApi(detail, options = {}) {
|
|
1628
1667
|
const serverUrl = normalizeServerUrl(options.serverUrl);
|
|
1668
|
+
const publicRead = isPublicRead(detail);
|
|
1629
1669
|
const paths = {};
|
|
1630
1670
|
const schemas = {};
|
|
1631
1671
|
for (const [tableName, table] of Object.entries(detail.tables)) {
|
|
@@ -1643,44 +1683,62 @@ function generateSubgraphOpenApi(detail, options = {}) {
|
|
|
1643
1683
|
required,
|
|
1644
1684
|
example: rowExample(table)
|
|
1645
1685
|
};
|
|
1646
|
-
|
|
1686
|
+
const responseSchema = publicRead ? {
|
|
1687
|
+
type: "object",
|
|
1688
|
+
properties: {
|
|
1689
|
+
rows: {
|
|
1690
|
+
type: "array",
|
|
1691
|
+
items: { $ref: `#/components/schemas/${schemaName}` }
|
|
1692
|
+
},
|
|
1693
|
+
next_cursor: { type: ["string", "null"] },
|
|
1694
|
+
tip: {
|
|
1695
|
+
type: "object",
|
|
1696
|
+
properties: {
|
|
1697
|
+
block_height: { type: "integer" },
|
|
1698
|
+
subgraph_height: { type: "integer" },
|
|
1699
|
+
blocks_behind: { type: "integer" }
|
|
1700
|
+
}
|
|
1701
|
+
}
|
|
1702
|
+
}
|
|
1703
|
+
} : {
|
|
1704
|
+
type: "object",
|
|
1705
|
+
properties: {
|
|
1706
|
+
data: {
|
|
1707
|
+
type: "array",
|
|
1708
|
+
items: { $ref: `#/components/schemas/${schemaName}` }
|
|
1709
|
+
},
|
|
1710
|
+
meta: {
|
|
1711
|
+
type: "object",
|
|
1712
|
+
properties: {
|
|
1713
|
+
total: { type: "integer" },
|
|
1714
|
+
limit: { type: "integer" },
|
|
1715
|
+
offset: { type: "integer" }
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
};
|
|
1720
|
+
paths[tablePath(detail.name, tableName, publicRead)] = {
|
|
1647
1721
|
get: {
|
|
1648
1722
|
summary: `Query ${detail.name}.${tableName}`,
|
|
1649
1723
|
operationId: `query_${detail.name.replace(/-/g, "_")}_${tableName}`,
|
|
1650
|
-
parameters: tableParameters(table),
|
|
1724
|
+
parameters: tableParameters(table, publicRead),
|
|
1651
1725
|
responses: {
|
|
1652
1726
|
"200": {
|
|
1653
1727
|
description: "Rows returned from the subgraph table.",
|
|
1654
1728
|
content: {
|
|
1655
1729
|
"application/json": {
|
|
1656
|
-
schema:
|
|
1657
|
-
type: "object",
|
|
1658
|
-
properties: {
|
|
1659
|
-
data: {
|
|
1660
|
-
type: "array",
|
|
1661
|
-
items: { $ref: `#/components/schemas/${schemaName}` }
|
|
1662
|
-
},
|
|
1663
|
-
meta: {
|
|
1664
|
-
type: "object",
|
|
1665
|
-
properties: {
|
|
1666
|
-
total: { type: "integer" },
|
|
1667
|
-
limit: { type: "integer" },
|
|
1668
|
-
offset: { type: "integer" }
|
|
1669
|
-
}
|
|
1670
|
-
}
|
|
1671
|
-
}
|
|
1672
|
-
}
|
|
1730
|
+
schema: responseSchema
|
|
1673
1731
|
}
|
|
1674
1732
|
}
|
|
1675
1733
|
}
|
|
1676
1734
|
}
|
|
1677
1735
|
}
|
|
1678
1736
|
};
|
|
1679
|
-
paths[countPath(detail.name, tableName)] = {
|
|
1737
|
+
paths[countPath(detail.name, tableName, publicRead)] = {
|
|
1680
1738
|
get: {
|
|
1681
1739
|
summary: `Count ${detail.name}.${tableName}`,
|
|
1682
1740
|
operationId: `count_${detail.name.replace(/-/g, "_")}_${tableName}`,
|
|
1683
|
-
parameters: tableParameters(table),
|
|
1741
|
+
parameters: tableParameters(table, publicRead),
|
|
1684
1742
|
responses: {
|
|
1685
1743
|
"200": {
|
|
1686
1744
|
description: "Row count for the filtered table query.",
|
|
@@ -1719,17 +1777,19 @@ function generateSubgraphOpenApi(detail, options = {}) {
|
|
|
1719
1777
|
}
|
|
1720
1778
|
function generateSubgraphMarkdown(detail, options = {}) {
|
|
1721
1779
|
const agent = generateSubgraphAgentSchema(detail, options);
|
|
1780
|
+
const publicRead = isPublicRead(detail);
|
|
1722
1781
|
const lines = [
|
|
1723
1782
|
`# ${detail.name} Subgraph API`,
|
|
1724
1783
|
"",
|
|
1725
1784
|
`Version: ${detail.version}`,
|
|
1726
1785
|
detail.schemaHash ? `Schema hash: ${detail.schemaHash}` : undefined,
|
|
1727
1786
|
`Server: ${agent.serverUrl}`,
|
|
1787
|
+
publicRead ? "Visibility: public — anon reads, no API key. Responses use the `{ rows, next_cursor, tip }` envelope; paginate with `?cursor=<next_cursor>` and `_order=asc|desc` (`_offset`/`_sort` are rejected)." : undefined,
|
|
1728
1788
|
"",
|
|
1729
1789
|
detail.description
|
|
1730
1790
|
].filter((line) => line !== undefined && line !== "");
|
|
1731
1791
|
for (const [tableName, table] of Object.entries(agent.tables)) {
|
|
1732
|
-
lines.push("", `## ${tableName}`, "", `GET ${table.endpoint}`, `GET ${table.countEndpoint}`, "", `Rows: ${table.rowCount}`, "", "### Columns", "", "| Column | Type | Attributes |", "| --- | --- | --- |");
|
|
1792
|
+
lines.push("", `## ${tableName}`, "", `GET ${table.endpoint}`, `GET ${table.countEndpoint}`, ...table.aggregateEndpoint ? [`GET ${table.aggregateEndpoint}`] : [], ...table.streamEndpoint ? [`GET ${table.streamEndpoint} (SSE)`] : [], "", `Rows: ${table.rowCount}`, "", "### Columns", "", "| Column | Type | Attributes |", "| --- | --- | --- |");
|
|
1733
1793
|
for (const [columnName, col] of Object.entries(table.columns)) {
|
|
1734
1794
|
const attrs = [
|
|
1735
1795
|
SYSTEM_COLUMNS.includes(columnName) ? "system" : undefined,
|
|
@@ -2007,6 +2067,7 @@ export {
|
|
|
2007
2067
|
ReplaySubscriptionRequestSchema,
|
|
2008
2068
|
RateLimitError,
|
|
2009
2069
|
PrintEventFilterSchema,
|
|
2070
|
+
PaymentRequiredError,
|
|
2010
2071
|
NotFoundError,
|
|
2011
2072
|
NftTransferFilterSchema,
|
|
2012
2073
|
NftMintFilterSchema,
|
|
@@ -2034,5 +2095,5 @@ export {
|
|
|
2034
2095
|
AuthenticationError
|
|
2035
2096
|
};
|
|
2036
2097
|
|
|
2037
|
-
//# debugId=
|
|
2098
|
+
//# debugId=0BB6C7F6F5DA455A64756E2164756E21
|
|
2038
2099
|
//# sourceMappingURL=index.js.map
|