@homeflare/alchemy 0.27.3 → 0.27.4
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/cloudflare/mesh-node-token.d.ts +1 -1
- package/dist/cloudflare/mesh-node-token.d.ts.map +1 -1
- package/dist/forgejo/branch-protection.d.ts +4 -4
- package/dist/forgejo/org-actions-secrets.d.ts +4 -4
- package/dist/forgejo/org-label.d.ts +4 -4
- package/dist/forgejo/org-team.d.ts +4 -4
- package/dist/forgejo/repo-webhook.d.ts +4 -4
- package/dist/forgejo/repository.d.ts +4 -4
- package/dist/forgejo/team-member.d.ts +4 -4
- package/dist/netbox/fake-netbox.d.ts +43 -0
- package/dist/netbox/fake-netbox.d.ts.map +1 -0
- package/dist/netbox/index.d.ts +1 -2
- package/dist/netbox/index.d.ts.map +1 -1
- package/dist/netbox/index.js +71 -119
- package/dist/netbox/index.js.map +5 -6
- package/dist/netbox/prefix.d.ts +33 -2
- package/dist/netbox/prefix.d.ts.map +1 -1
- package/dist/netbox/resource.d.ts +73 -48
- package/dist/netbox/resource.d.ts.map +1 -1
- package/docs/credentials.md +10 -0
- package/docs/peers.md +11 -0
- package/docs/upstream-conformance.md +17 -2
- package/package.json +2 -1
- package/src/netbox/fake-netbox.ts +56 -0
- package/src/netbox/index.ts +8 -2
- package/src/netbox/prefix.test.ts +223 -0
- package/src/netbox/prefix.ts +68 -32
- package/src/netbox/resource.test.ts +67 -0
- package/src/netbox/resource.ts +133 -112
- package/dist/netbox/client.d.ts +0 -52
- package/dist/netbox/client.d.ts.map +0 -1
- package/src/netbox/client.test.ts +0 -67
- package/src/netbox/client.ts +0 -146
|
@@ -19,5 +19,5 @@ export type MeshNodeRef = {
|
|
|
19
19
|
* success body IS the token. Other SDK errors pass through; they come only from non-2xx
|
|
20
20
|
* responses, which carry an error envelope, not a token.
|
|
21
21
|
*/
|
|
22
|
-
export declare const fetchMeshNodeToken: (ref: MeshNodeRef) => Effect.Effect<Redacted.Redacted<string>, import("@distilled.cloud/
|
|
22
|
+
export declare const fetchMeshNodeToken: (ref: MeshNodeRef) => Effect.Effect<Redacted.Redacted<string>, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/cloudflare/Errors").CloudflareError | import("@distilled.cloud/cloudflare/Errors").CloudflareHttpError | import("@distilled.cloud/cloudflare/Errors").CloudflareParseError | import("@distilled.cloud/cloudflare/Errors").CloudflareRateLimited | import("@distilled.cloud/core/errors").ConfigError | zeroTrust.Forbidden | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | import("@distilled.cloud/cloudflare/Errors").InvalidRoute | MeshNodeError | import("@distilled.cloud/cloudflare/Credentials").OAuthRefreshError | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/cloudflare/Errors").UnknownCloudflareError, zeroTrust.CloudflareOpContext>;
|
|
23
23
|
//# sourceMappingURL=mesh-node-token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-node-token.d.ts","sourceRoot":"","sources":["../../src/cloudflare/mesh-node-token.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AAEnE,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,CACvD;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAA;CAAE,CACrD,CAAC;AAoDF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAAS,WAAW,
|
|
1
|
+
{"version":3,"file":"mesh-node-token.d.ts","sourceRoot":"","sources":["../../src/cloudflare/mesh-node-token.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,SAAS,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAkB,MAAM,oBAAoB,CAAC;AAEnE,yEAAyE;AACzE,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,CACvD;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAA;CAAE,CACrD,CAAC;AAoDF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAAS,WAAW,8gCA4B/C,CAAC"}
|
|
@@ -56,7 +56,7 @@ export declare const handlers: {
|
|
|
56
56
|
list: () => Effect.Effect<never[], never, never>;
|
|
57
57
|
read: ({ olds }: {
|
|
58
58
|
olds: BranchProtectionProps;
|
|
59
|
-
}) => Effect.Effect<BranchProtectionAttributes | undefined, import("@distilled.cloud/
|
|
59
|
+
}) => Effect.Effect<BranchProtectionAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.Locked | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
60
60
|
diff: ({ news, output }: {
|
|
61
61
|
news: import("alchemy").Input<BranchProtectionProps>;
|
|
62
62
|
output: BranchProtectionAttributes | undefined;
|
|
@@ -66,13 +66,13 @@ export declare const handlers: {
|
|
|
66
66
|
readonly action: 'noop';
|
|
67
67
|
} | {
|
|
68
68
|
readonly action: 'replace';
|
|
69
|
-
} | undefined, import("@distilled.cloud/
|
|
69
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.Locked | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
70
70
|
reconcile: ({ news }: {
|
|
71
71
|
news: BranchProtectionProps;
|
|
72
|
-
}) => Effect.Effect<BranchProtectionAttributes, import("@distilled.cloud/
|
|
72
|
+
}) => Effect.Effect<BranchProtectionAttributes, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.Locked | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
73
73
|
delete: ({ olds }: {
|
|
74
74
|
olds: BranchProtectionProps;
|
|
75
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
75
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.Locked | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
76
76
|
};
|
|
77
77
|
export declare const ForgejoBranchProtectionProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoBranchProtection>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
78
78
|
//# sourceMappingURL=branch-protection.d.ts.map
|
|
@@ -52,7 +52,7 @@ export declare const handlers: {
|
|
|
52
52
|
list: () => Effect.Effect<never[], never, never>;
|
|
53
53
|
read: ({ olds }: {
|
|
54
54
|
olds: OrgSecretProps;
|
|
55
|
-
}) => Effect.Effect<OrgSecretAttributes | undefined, import("@distilled.cloud/
|
|
55
|
+
}) => Effect.Effect<OrgSecretAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoSecretEnvUnsetError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
56
56
|
diff: ({ news, output }: {
|
|
57
57
|
news: import("alchemy").Input<OrgSecretProps>;
|
|
58
58
|
output: OrgSecretAttributes | undefined;
|
|
@@ -62,13 +62,13 @@ export declare const handlers: {
|
|
|
62
62
|
readonly action: 'noop';
|
|
63
63
|
} | {
|
|
64
64
|
readonly action: 'replace';
|
|
65
|
-
} | undefined, import("@distilled.cloud/
|
|
65
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoSecretEnvUnsetError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
66
66
|
reconcile: ({ news }: {
|
|
67
67
|
news: OrgSecretProps;
|
|
68
|
-
}) => Effect.Effect<OrgSecretAttributes, import("@distilled.cloud/
|
|
68
|
+
}) => Effect.Effect<OrgSecretAttributes, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoSecretEnvUnsetError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
69
69
|
delete: ({ olds }: {
|
|
70
70
|
olds: OrgSecretProps;
|
|
71
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
71
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoSecretEnvUnsetError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
72
72
|
};
|
|
73
73
|
export declare const ForgejoOrgSecretProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoOrgSecret>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
74
74
|
export {};
|
|
@@ -51,7 +51,7 @@ export declare const handlers: {
|
|
|
51
51
|
list: () => Effect.Effect<never[], never, never>;
|
|
52
52
|
read: ({ olds }: {
|
|
53
53
|
olds: OrgLabelProps;
|
|
54
|
-
}) => Effect.Effect<OrgLabelAttributes | undefined, import("@distilled.cloud/
|
|
54
|
+
}) => Effect.Effect<OrgLabelAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
55
55
|
diff: ({ news, output }: {
|
|
56
56
|
news: import("alchemy").Input<OrgLabelProps>;
|
|
57
57
|
output: OrgLabelAttributes | undefined;
|
|
@@ -61,13 +61,13 @@ export declare const handlers: {
|
|
|
61
61
|
readonly action: 'noop';
|
|
62
62
|
} | {
|
|
63
63
|
readonly action: 'replace';
|
|
64
|
-
} | undefined, import("@distilled.cloud/
|
|
64
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
65
65
|
reconcile: ({ news }: {
|
|
66
66
|
news: OrgLabelProps;
|
|
67
|
-
}) => Effect.Effect<OrgLabelAttributes, import("@distilled.cloud/
|
|
67
|
+
}) => Effect.Effect<OrgLabelAttributes, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
68
68
|
delete: ({ olds }: {
|
|
69
69
|
olds: OrgLabelProps;
|
|
70
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
70
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
71
71
|
};
|
|
72
72
|
export declare const ForgejoOrgLabelProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoOrgLabel>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
73
73
|
//# sourceMappingURL=org-label.d.ts.map
|
|
@@ -53,7 +53,7 @@ export declare const handlers: {
|
|
|
53
53
|
list: () => Effect.Effect<never[], never, never>;
|
|
54
54
|
read: ({ olds }: {
|
|
55
55
|
olds: OrgTeamProps;
|
|
56
|
-
}) => Effect.Effect<OrgTeamAttributes | undefined, import("@distilled.cloud/
|
|
56
|
+
}) => Effect.Effect<OrgTeamAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
57
57
|
diff: ({ news, output }: {
|
|
58
58
|
news: import("alchemy").Input<OrgTeamProps>;
|
|
59
59
|
output: OrgTeamAttributes | undefined;
|
|
@@ -63,13 +63,13 @@ export declare const handlers: {
|
|
|
63
63
|
readonly action: 'noop';
|
|
64
64
|
} | {
|
|
65
65
|
readonly action: 'replace';
|
|
66
|
-
} | undefined, import("@distilled.cloud/
|
|
66
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
67
67
|
reconcile: ({ news }: {
|
|
68
68
|
news: OrgTeamProps;
|
|
69
|
-
}) => Effect.Effect<OrgTeamAttributes, import("@distilled.cloud/
|
|
69
|
+
}) => Effect.Effect<OrgTeamAttributes, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
70
70
|
delete: ({ olds }: {
|
|
71
71
|
olds: OrgTeamProps;
|
|
72
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
72
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | organization.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
73
73
|
};
|
|
74
74
|
export declare const ForgejoOrgTeamProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoOrgTeam>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
75
75
|
//# sourceMappingURL=org-team.d.ts.map
|
|
@@ -56,7 +56,7 @@ export declare const handlers: {
|
|
|
56
56
|
list: () => Effect.Effect<never[], never, never>;
|
|
57
57
|
read: ({ olds }: {
|
|
58
58
|
olds: RepoWebhookProps;
|
|
59
|
-
}) => Effect.Effect<RepoWebhookAttributes | undefined, import("@distilled.cloud/
|
|
59
|
+
}) => Effect.Effect<RepoWebhookAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
60
60
|
diff: ({ news, output }: {
|
|
61
61
|
news: import("alchemy").Input<RepoWebhookProps>;
|
|
62
62
|
output: RepoWebhookAttributes | undefined;
|
|
@@ -66,13 +66,13 @@ export declare const handlers: {
|
|
|
66
66
|
readonly action: 'noop';
|
|
67
67
|
} | {
|
|
68
68
|
readonly action: 'replace';
|
|
69
|
-
} | undefined, import("@distilled.cloud/
|
|
69
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
70
70
|
reconcile: ({ news }: {
|
|
71
71
|
news: RepoWebhookProps;
|
|
72
|
-
}) => Effect.Effect<RepoWebhookAttributes, import("@distilled.cloud/
|
|
72
|
+
}) => Effect.Effect<RepoWebhookAttributes, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
73
73
|
delete: ({ olds }: {
|
|
74
74
|
olds: RepoWebhookProps;
|
|
75
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
75
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | repository.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
76
76
|
};
|
|
77
77
|
export declare const ForgejoRepoWebhookProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoRepoWebhook>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
78
78
|
//# sourceMappingURL=repo-webhook.d.ts.map
|
|
@@ -68,7 +68,7 @@ export declare const handlers: {
|
|
|
68
68
|
list: () => Effect.Effect<never[], never, never>;
|
|
69
69
|
read: ({ olds }: {
|
|
70
70
|
olds: RepositoryProps;
|
|
71
|
-
}) => Effect.Effect<RepositoryAttributes | undefined, import("@distilled.cloud/
|
|
71
|
+
}) => Effect.Effect<RepositoryAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Conflict | repository.Forbidden | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
72
72
|
diff: ({ news, output }: {
|
|
73
73
|
news: import("alchemy").Input<RepositoryProps>;
|
|
74
74
|
output: RepositoryAttributes | undefined;
|
|
@@ -78,13 +78,13 @@ export declare const handlers: {
|
|
|
78
78
|
readonly action: 'noop';
|
|
79
79
|
} | {
|
|
80
80
|
readonly action: 'replace';
|
|
81
|
-
} | undefined, import("@distilled.cloud/
|
|
81
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Conflict | repository.Forbidden | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
82
82
|
reconcile: ({ news }: {
|
|
83
83
|
news: RepositoryProps;
|
|
84
|
-
}) => Effect.Effect<RepositoryAttributes, import("@distilled.cloud/
|
|
84
|
+
}) => Effect.Effect<RepositoryAttributes, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Conflict | repository.Forbidden | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
85
85
|
delete: ({ olds }: {
|
|
86
86
|
olds: RepositoryProps;
|
|
87
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
87
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | organization.BadRequest | import("@distilled.cloud/core/errors").ConfigError | organization.Conflict | repository.Forbidden | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | repository.NotFound | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError | repository.UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
88
88
|
};
|
|
89
89
|
export declare const ForgejoRepositoryProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoRepository>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
90
90
|
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -60,7 +60,7 @@ export declare const handlers: {
|
|
|
60
60
|
list: () => Effect.Effect<never[], never, never>;
|
|
61
61
|
read: ({ olds }: {
|
|
62
62
|
olds: TeamMemberProps;
|
|
63
|
-
}) => Effect.Effect<TeamMemberAttributes | undefined, import("@distilled.cloud/
|
|
63
|
+
}) => Effect.Effect<TeamMemberAttributes | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoTeamNotFoundError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
64
64
|
diff: ({ news, output }: {
|
|
65
65
|
news: import("alchemy").Input<TeamMemberProps>;
|
|
66
66
|
output: TeamMemberAttributes | undefined;
|
|
@@ -70,13 +70,13 @@ export declare const handlers: {
|
|
|
70
70
|
readonly action: 'noop';
|
|
71
71
|
} | {
|
|
72
72
|
readonly action: 'replace';
|
|
73
|
-
} | undefined, import("@distilled.cloud/
|
|
73
|
+
} | undefined, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoTeamNotFoundError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
74
74
|
reconcile: ({ news }: {
|
|
75
75
|
news: TeamMemberProps;
|
|
76
|
-
}) => Effect.Effect<TeamMemberAttributes, import("@distilled.cloud/
|
|
76
|
+
}) => Effect.Effect<TeamMemberAttributes, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoTeamNotFoundError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
77
77
|
delete: ({ olds }: {
|
|
78
78
|
olds: TeamMemberProps;
|
|
79
|
-
}) => Effect.Effect<void, import("@distilled.cloud/
|
|
79
|
+
}) => Effect.Effect<void, import("@distilled.cloud/core/errors").BadGateway | import("@distilled.cloud/core/errors").ConfigError | organization.Forbidden | import("@distilled.cloud/forgejo/Errors").ForgejoParseError | ForgejoTeamNotFoundError | import("@distilled.cloud/core/errors").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/core/errors").InternalServerError | organization.NotFound | import("@distilled.cloud/core/errors").ServiceUnavailable | import("@distilled.cloud/core/errors").TooManyRequests | import("@distilled.cloud/core/errors").Unauthorized | import("@distilled.cloud/forgejo/Errors").UnknownForgejoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
80
80
|
};
|
|
81
81
|
export declare const ForgejoTeamMemberProvider: () => import("effect/Layer").Layer<Provider.Provider<ForgejoTeamMember>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
82
82
|
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A minimal in-memory NetBox REST API for this family's tests — an in-memory `fetch` handed to
|
|
3
|
+
* Effect's real `FetchHttpClient` through its `Fetch` reference, mirroring
|
|
4
|
+
* `../forgejo/fake-forgejo.ts` (itself mirroring `cloudflare/fake-mesh.ts`). Tests exercise
|
|
5
|
+
* distilled's REAL path assembly, JSON encode/decode and status→typed-error matching (`404` →
|
|
6
|
+
* `NotFound`, `403` → `Forbidden`, …) — nothing about that matching is re-implemented here, only
|
|
7
|
+
* the wire responses a scenario needs.
|
|
8
|
+
*
|
|
9
|
+
* ⛔ TEST-ONLY, AND NO NETWORK. No provider imports this file. The base URL is RFC 2606
|
|
10
|
+
* `netbox.example.com`, and the token is a placeholder.
|
|
11
|
+
*/
|
|
12
|
+
import { type Credentials } from '@distilled.cloud/netbox/Credentials';
|
|
13
|
+
import * as Layer from 'effect/Layer';
|
|
14
|
+
export declare const FAKE_BASE = "https://netbox.example.com";
|
|
15
|
+
export declare const FAKE_TOKEN = "placeholder-netbox-token";
|
|
16
|
+
export type Seen = {
|
|
17
|
+
readonly method: string;
|
|
18
|
+
readonly path: string;
|
|
19
|
+
};
|
|
20
|
+
/** NetBox's `{ detail }` failure envelope (403/404) — matching protocol.ts's `errorEnvelope`. */
|
|
21
|
+
export declare const fakeFailure: (status: number, detail: string) => Response;
|
|
22
|
+
/**
|
|
23
|
+
* `route` decides every response; this wrapper only records what was sent and adapts to
|
|
24
|
+
* `globalThis.fetch`'s signature. A test that expects no request at all asserts `seen` is empty.
|
|
25
|
+
*/
|
|
26
|
+
export declare const fakeNetbox: (route: (method: string, url: URL) => Response) => {
|
|
27
|
+
fetch: typeof fetch;
|
|
28
|
+
seen: Seen[];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* distilled Credentials + the real FetchHttpClient over the fake — `NetboxOpContext`, what every
|
|
32
|
+
* resource file's exported `spec.fetchLive` needs.
|
|
33
|
+
*
|
|
34
|
+
* ⚠️ NOT PAIRED WITH `handlers` (each resource file's `netboxHandlers(spec)` export). `handlers`
|
|
35
|
+
* bakes in `CredentialsFromEnv`, which resolves `NETBOX_URL` / `NETBOX_TOKEN` through Effect's
|
|
36
|
+
* `Config` — whose default provider snapshots `process.env` once and never re-reads it (measured
|
|
37
|
+
* in the forgejo migration, kit PR 180: mutating `process.env` mid-test-run had no effect). So a
|
|
38
|
+
* test cannot point `handlers` at a fake server; it calls `spec.fetchLive`/`spec.attributes`
|
|
39
|
+
* directly instead, with this explicit layer, exercising exactly the same production code
|
|
40
|
+
* without that env seam.
|
|
41
|
+
*/
|
|
42
|
+
export declare const fakeNetboxLayer: (fetchFn: typeof globalThis.fetch, creds?: Layer.Layer<Credentials>) => Layer.Layer<Credentials | import("effect/unstable/http/HttpClient").HttpClient, never, never>;
|
|
43
|
+
//# sourceMappingURL=fake-netbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake-netbox.d.ts","sourceRoot":"","sources":["../../src/netbox/fake-netbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,qCAAqC,CAAC;AACpF,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,eAAO,MAAM,SAAS,+BAA+B,CAAC;AACtD,eAAO,MAAM,UAAU,6BAA6B,CAAC;AAErD,MAAM,MAAM,IAAI,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,iGAAiG;AACjG,eAAO,MAAM,WAAW,WAAY,MAAM,UAAU,MAAM,aACnB,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,UAAU,UAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ;;;CAUvE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,YACjB,OAAO,UAAU,CAAC,KAAK,UACzB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,kGAC+D,CAAC"}
|
package/dist/netbox/index.d.ts
CHANGED
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
* ★ The constraint reader IS exported, because a consumer writing its own family needs the same
|
|
9
9
|
* guard — and because a table nobody can reach is a table nobody uses.
|
|
10
10
|
*/
|
|
11
|
-
export { NetboxError, apiBase } from './client.ts';
|
|
12
11
|
export { NETBOX_CONSTRAINTS, bodyViolations, constraintsFor, guardBody, } from './constraint-guard.ts';
|
|
13
12
|
export { type EndpointConstraints, type EndpointKey, type NetboxBody, type ParamConstraint, refusal, violations, } from './constraints.ts';
|
|
14
13
|
export { NETBOX_CONSTRAINTS_DIGEST } from './generated/constraints/index.ts';
|
|
15
14
|
export { NetboxPrefix, NetboxPrefixProvider, type PrefixAttributes, type PrefixProps, type PrefixStatus, } from './prefix.ts';
|
|
16
|
-
export { type NetboxRequirements, type NetboxSpec, netboxHandlers } from './resource.ts';
|
|
15
|
+
export { LOCATE_PAGE, locateOne, type NetboxRequirements, type NetboxSpec, netboxHandlers, soleMatch, } from './resource.ts';
|
|
17
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/netbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/netbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,OAAO,EACP,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,SAAS,EACT,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,cAAc,EACd,SAAS,GACV,MAAM,eAAe,CAAC"}
|