@superblocksteam/shared 0.9586.8 → 0.9589.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/database-lifecycle/index.d.ts +115 -0
- package/dist/database-lifecycle/index.d.ts.map +1 -0
- package/dist/database-lifecycle/index.js +143 -0
- package/dist/database-lifecycle/index.js.map +1 -0
- package/dist/database-lifecycle/index.test.d.ts +2 -0
- package/dist/database-lifecycle/index.test.d.ts.map +1 -0
- package/dist/database-lifecycle/index.test.js +110 -0
- package/dist/database-lifecycle/index.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/templates/dropbox.d.ts.map +1 -1
- package/dist/plugins/templates/dropbox.js +5 -1
- package/dist/plugins/templates/dropbox.js.map +1 -1
- package/dist/plugins/templates/shared/auth.d.ts +2 -0
- package/dist/plugins/templates/shared/auth.d.ts.map +1 -1
- package/dist/plugins/templates/shared/auth.js +1 -0
- package/dist/plugins/templates/shared/auth.js.map +1 -1
- package/dist/types/ai/index.d.ts +1 -0
- package/dist/types/ai/index.d.ts.map +1 -1
- package/dist/types/ai/index.js +1 -0
- package/dist/types/ai/index.js.map +1 -1
- package/dist/types/ai/provider-credential.d.ts +53 -0
- package/dist/types/ai/provider-credential.d.ts.map +1 -0
- package/dist/types/ai/provider-credential.js +10 -0
- package/dist/types/ai/provider-credential.js.map +1 -0
- package/dist/types/audit/ocsf.d.ts.map +1 -1
- package/dist/types/audit/ocsf.js +8 -2
- package/dist/types/audit/ocsf.js.map +1 -1
- package/dist/types/commit/index.d.ts +1 -0
- package/dist/types/commit/index.d.ts.map +1 -1
- package/dist/types/commit/index.js.map +1 -1
- package/dist/types/common/env.d.ts +25 -0
- package/dist/types/common/env.d.ts.map +1 -1
- package/dist/types/common/env.js +29 -1
- package/dist/types/common/env.js.map +1 -1
- package/dist/types/common/env.test.d.ts +2 -0
- package/dist/types/common/env.test.d.ts.map +1 -0
- package/dist/types/common/env.test.js +24 -0
- package/dist/types/common/env.test.js.map +1 -0
- package/dist/types/common/response.d.ts +2 -2
- package/dist/types/common/response.d.ts.map +1 -1
- package/dist/types/common/response.js.map +1 -1
- package/dist/types/credentials/index.d.ts +7 -7
- package/dist/types/credentials/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/integration/index.d.ts +5 -2
- package/dist/types/integration/index.d.ts.map +1 -1
- package/dist/types/integration/index.js +5 -2
- package/dist/types/integration/index.js.map +1 -1
- package/dist/types/organization/agent.js +10 -40
- package/dist/types/organization/agent.js.map +1 -1
- package/dist/types/plugin/form.d.ts +1 -0
- package/dist/types/plugin/form.d.ts.map +1 -1
- package/dist/types/policyGate/index.d.ts +32 -0
- package/dist/types/policyGate/index.d.ts.map +1 -0
- package/dist/types/policyGate/index.js +3 -0
- package/dist/types/policyGate/index.js.map +1 -0
- package/dist/types/rbac/index.d.ts +8 -0
- package/dist/types/rbac/index.d.ts.map +1 -1
- package/dist/types/rbac/index.js +5 -0
- package/dist/types/rbac/index.js.map +1 -1
- package/dist/types/response/GetPolicyGateReadinessResponseBody.d.ts +3 -0
- package/dist/types/response/GetPolicyGateReadinessResponseBody.d.ts.map +1 -0
- package/dist/types/response/GetPolicyGateReadinessResponseBody.js +3 -0
- package/dist/types/response/GetPolicyGateReadinessResponseBody.js.map +1 -0
- package/dist/types/response/index.d.ts +1 -0
- package/dist/types/response/index.d.ts.map +1 -1
- package/dist/types/response/index.js +1 -0
- package/dist/types/response/index.js.map +1 -1
- package/dist/types/reviewPolicy/index.d.ts +105 -0
- package/dist/types/reviewPolicy/index.d.ts.map +1 -0
- package/dist/types/reviewPolicy/index.js +47 -0
- package/dist/types/reviewPolicy/index.js.map +1 -0
- package/dist/utils/git-url.d.ts +0 -1
- package/dist/utils/git-url.d.ts.map +1 -1
- package/dist/utils/git-url.js +1 -2
- package/dist/utils/git-url.js.map +1 -1
- package/dist/utils/git-url.test.js +0 -5
- package/dist/utils/git-url.test.js.map +1 -1
- package/dist-esm/database-lifecycle/index.d.ts +115 -0
- package/dist-esm/database-lifecycle/index.d.ts.map +1 -0
- package/dist-esm/database-lifecycle/index.js +131 -0
- package/dist-esm/database-lifecycle/index.js.map +1 -0
- package/dist-esm/database-lifecycle/index.test.d.ts +2 -0
- package/dist-esm/database-lifecycle/index.test.d.ts.map +1 -0
- package/dist-esm/database-lifecycle/index.test.js +108 -0
- package/dist-esm/database-lifecycle/index.test.js.map +1 -0
- package/dist-esm/index.d.ts +1 -0
- package/dist-esm/index.d.ts.map +1 -1
- package/dist-esm/index.js +1 -0
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/plugins/index.d.ts.map +1 -1
- package/dist-esm/plugins/index.js +4 -0
- package/dist-esm/plugins/index.js.map +1 -1
- package/dist-esm/plugins/templates/dropbox.d.ts.map +1 -1
- package/dist-esm/plugins/templates/dropbox.js +5 -1
- package/dist-esm/plugins/templates/dropbox.js.map +1 -1
- package/dist-esm/plugins/templates/shared/auth.d.ts +2 -0
- package/dist-esm/plugins/templates/shared/auth.d.ts.map +1 -1
- package/dist-esm/plugins/templates/shared/auth.js +1 -0
- package/dist-esm/plugins/templates/shared/auth.js.map +1 -1
- package/dist-esm/types/ai/index.d.ts +1 -0
- package/dist-esm/types/ai/index.d.ts.map +1 -1
- package/dist-esm/types/ai/index.js +1 -0
- package/dist-esm/types/ai/index.js.map +1 -1
- package/dist-esm/types/ai/provider-credential.d.ts +53 -0
- package/dist-esm/types/ai/provider-credential.d.ts.map +1 -0
- package/dist-esm/types/ai/provider-credential.js +7 -0
- package/dist-esm/types/ai/provider-credential.js.map +1 -0
- package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
- package/dist-esm/types/audit/ocsf.js +8 -2
- package/dist-esm/types/audit/ocsf.js.map +1 -1
- package/dist-esm/types/commit/index.d.ts +1 -0
- package/dist-esm/types/commit/index.d.ts.map +1 -1
- package/dist-esm/types/commit/index.js.map +1 -1
- package/dist-esm/types/common/env.d.ts +25 -0
- package/dist-esm/types/common/env.d.ts.map +1 -1
- package/dist-esm/types/common/env.js +27 -0
- package/dist-esm/types/common/env.js.map +1 -1
- package/dist-esm/types/common/env.test.d.ts +2 -0
- package/dist-esm/types/common/env.test.d.ts.map +1 -0
- package/dist-esm/types/common/env.test.js +22 -0
- package/dist-esm/types/common/env.test.js.map +1 -0
- package/dist-esm/types/common/response.d.ts +2 -2
- package/dist-esm/types/common/response.d.ts.map +1 -1
- package/dist-esm/types/common/response.js.map +1 -1
- package/dist-esm/types/credentials/index.d.ts +7 -7
- package/dist-esm/types/credentials/index.d.ts.map +1 -1
- package/dist-esm/types/index.d.ts +2 -0
- package/dist-esm/types/index.d.ts.map +1 -1
- package/dist-esm/types/index.js +2 -0
- package/dist-esm/types/index.js.map +1 -1
- package/dist-esm/types/integration/index.d.ts +5 -2
- package/dist-esm/types/integration/index.d.ts.map +1 -1
- package/dist-esm/types/integration/index.js +5 -2
- package/dist-esm/types/integration/index.js.map +1 -1
- package/dist-esm/types/organization/agent.js +1 -1
- package/dist-esm/types/organization/agent.js.map +1 -1
- package/dist-esm/types/plugin/form.d.ts +1 -0
- package/dist-esm/types/plugin/form.d.ts.map +1 -1
- package/dist-esm/types/policyGate/index.d.ts +32 -0
- package/dist-esm/types/policyGate/index.d.ts.map +1 -0
- package/dist-esm/types/policyGate/index.js +2 -0
- package/dist-esm/types/policyGate/index.js.map +1 -0
- package/dist-esm/types/rbac/index.d.ts +8 -0
- package/dist-esm/types/rbac/index.d.ts.map +1 -1
- package/dist-esm/types/rbac/index.js +5 -0
- package/dist-esm/types/rbac/index.js.map +1 -1
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.d.ts +3 -0
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.d.ts.map +1 -0
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.js +2 -0
- package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.js.map +1 -0
- package/dist-esm/types/response/index.d.ts +1 -0
- package/dist-esm/types/response/index.d.ts.map +1 -1
- package/dist-esm/types/response/index.js +1 -0
- package/dist-esm/types/response/index.js.map +1 -1
- package/dist-esm/types/reviewPolicy/index.d.ts +105 -0
- package/dist-esm/types/reviewPolicy/index.d.ts.map +1 -0
- package/dist-esm/types/reviewPolicy/index.js +44 -0
- package/dist-esm/types/reviewPolicy/index.js.map +1 -0
- package/dist-esm/utils/git-url.d.ts +0 -1
- package/dist-esm/utils/git-url.d.ts.map +1 -1
- package/dist-esm/utils/git-url.js +0 -1
- package/dist-esm/utils/git-url.js.map +1 -1
- package/dist-esm/utils/git-url.test.js +1 -6
- package/dist-esm/utils/git-url.test.js.map +1 -1
- package/package.json +3 -3
- package/src/database-lifecycle/index.test.ts +132 -0
- package/src/database-lifecycle/index.ts +278 -0
- package/src/index.ts +1 -0
- package/src/plugins/index.ts +4 -0
- package/src/plugins/templates/dropbox.ts +5 -1
- package/src/plugins/templates/shared/auth.ts +3 -0
- package/src/types/ai/index.ts +1 -0
- package/src/types/ai/provider-credential.ts +61 -0
- package/src/types/audit/ocsf.ts +8 -2
- package/src/types/commit/index.ts +1 -0
- package/src/types/common/env.test.ts +27 -0
- package/src/types/common/env.ts +28 -0
- package/src/types/common/response.ts +2 -2
- package/src/types/credentials/index.ts +7 -7
- package/src/types/index.ts +2 -0
- package/src/types/integration/index.ts +9 -2
- package/src/types/organization/agent.ts +1 -1
- package/src/types/plugin/form.ts +1 -0
- package/src/types/policyGate/index.ts +52 -0
- package/src/types/rbac/index.ts +6 -0
- package/src/types/response/GetPolicyGateReadinessResponseBody.ts +3 -0
- package/src/types/response/index.ts +1 -0
- package/src/types/reviewPolicy/index.ts +132 -0
- package/src/utils/git-url.test.ts +1 -14
- package/src/utils/git-url.ts +0 -2
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
export declare const AI_AGENT_STATUSES: readonly ["active", "disabled"];
|
|
2
|
+
export declare const REVIEW_POLICY_NAME_MAX_LENGTH = 120;
|
|
3
|
+
export declare const REVIEW_POLICY_PROMPT_MAX_LENGTH = 10000;
|
|
4
|
+
export declare const REVIEW_POLICY_TYPES: readonly ["built_in_security_scan", "security_agent"];
|
|
5
|
+
export declare const REVIEW_POLICY_SOURCES: readonly ["admin_configured", "superblocks_managed"];
|
|
6
|
+
export declare const REVIEW_POLICY_TRIGGERS: readonly ["before_deploy", "after_checkpoint", "manual"];
|
|
7
|
+
export declare const REVIEW_POLICY_EXECUTION_CONTEXTS: readonly ["edit_mode_app", "superblocks_sabs_built_assets", "superblocks_sabs_dependency_metadata", "superblocks_sabs_source_snapshot"];
|
|
8
|
+
export declare const REVIEW_POLICY_RUNTIMES: readonly ["superblocks_dev_server_agent", "superblocks_sabs"];
|
|
9
|
+
export declare const REVIEW_POLICY_MODES: readonly ["advisory", "blocking"];
|
|
10
|
+
export declare const REVIEW_POLICY_RUNNER_TYPES: readonly ["built_in_security_scan", "llm_security_agent"];
|
|
11
|
+
export declare const REVIEW_FINDING_SOURCE_PHASES: readonly ["built_asset", "dependency", "edit_mode_app", "iac", "image", "source"];
|
|
12
|
+
export declare const REVIEW_FINDING_CATEGORIES: readonly ["external_policy", "misconfiguration", "security_agent", "secret", "sensitive_data", "vulnerability"];
|
|
13
|
+
export declare const REVIEW_FINDING_SEVERITIES: readonly ["critical", "high", "medium", "low", "info"];
|
|
14
|
+
export declare const REVIEW_FINDING_CONFIDENCES: readonly ["high", "medium", "low"];
|
|
15
|
+
export declare const REVIEW_FINDING_SUPPRESSION_STATUSES: readonly ["active", "expired", "revoked"];
|
|
16
|
+
export declare const REVIEW_RUN_STATUSES: readonly ["queued", "running", "passed", "findings", "blocked", "errored", "timed_out", "canceled", "stale"];
|
|
17
|
+
export declare const REVIEW_RUN_DECISIONS: readonly ["allowed", "advisory_allowed", "blocked", "error_blocked", "not_applicable"];
|
|
18
|
+
export declare const REVIEW_RUN_TRIGGERED_BYS: readonly ["system", "user"];
|
|
19
|
+
export type AiAgentStatus = (typeof AI_AGENT_STATUSES)[number];
|
|
20
|
+
export type ReviewPolicyStatus = AiAgentStatus;
|
|
21
|
+
export type ReviewPolicyType = (typeof REVIEW_POLICY_TYPES)[number];
|
|
22
|
+
export type ReviewPolicySource = (typeof REVIEW_POLICY_SOURCES)[number];
|
|
23
|
+
export type ReviewPolicyTrigger = (typeof REVIEW_POLICY_TRIGGERS)[number];
|
|
24
|
+
export type ReviewPolicyExecutionContext = (typeof REVIEW_POLICY_EXECUTION_CONTEXTS)[number];
|
|
25
|
+
export type ReviewPolicyRuntime = (typeof REVIEW_POLICY_RUNTIMES)[number];
|
|
26
|
+
export type ReviewPolicyMode = (typeof REVIEW_POLICY_MODES)[number];
|
|
27
|
+
export type ReviewPolicyRunnerType = (typeof REVIEW_POLICY_RUNNER_TYPES)[number];
|
|
28
|
+
export type ReviewFindingSourcePhase = (typeof REVIEW_FINDING_SOURCE_PHASES)[number];
|
|
29
|
+
export type ReviewFindingCategory = (typeof REVIEW_FINDING_CATEGORIES)[number];
|
|
30
|
+
export type ReviewFindingSeverity = (typeof REVIEW_FINDING_SEVERITIES)[number];
|
|
31
|
+
export type ReviewFindingConfidence = (typeof REVIEW_FINDING_CONFIDENCES)[number];
|
|
32
|
+
export type ReviewFindingSuppressionStatus = (typeof REVIEW_FINDING_SUPPRESSION_STATUSES)[number];
|
|
33
|
+
export type ReviewRunStatus = (typeof REVIEW_RUN_STATUSES)[number];
|
|
34
|
+
export type ReviewRunDecision = (typeof REVIEW_RUN_DECISIONS)[number];
|
|
35
|
+
export type ReviewRunTriggeredBy = (typeof REVIEW_RUN_TRIGGERED_BYS)[number];
|
|
36
|
+
export type ReviewPolicyScopeType = 'all_apps' | 'limited';
|
|
37
|
+
export interface ReviewPolicyLastRunDto {
|
|
38
|
+
id: string;
|
|
39
|
+
status: ReviewRunStatus;
|
|
40
|
+
created: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ReviewPolicyDto {
|
|
43
|
+
id: string;
|
|
44
|
+
organizationId: string;
|
|
45
|
+
aiAgentId: string;
|
|
46
|
+
activeVersionId: string;
|
|
47
|
+
versionNumber: number;
|
|
48
|
+
policyType: ReviewPolicyType;
|
|
49
|
+
source: ReviewPolicySource;
|
|
50
|
+
name: string;
|
|
51
|
+
status: AiAgentStatus;
|
|
52
|
+
mode: ReviewPolicyMode;
|
|
53
|
+
scope: {
|
|
54
|
+
type: ReviewPolicyScopeType;
|
|
55
|
+
};
|
|
56
|
+
lastRun: ReviewPolicyLastRunDto | null;
|
|
57
|
+
createdBy: string | null;
|
|
58
|
+
created: string;
|
|
59
|
+
}
|
|
60
|
+
export interface ReviewPolicyDetailDto extends ReviewPolicyDto {
|
|
61
|
+
prompt: string;
|
|
62
|
+
}
|
|
63
|
+
export interface ReviewPolicyRunDto {
|
|
64
|
+
id: string;
|
|
65
|
+
applicationId: string;
|
|
66
|
+
applicationName: string | null;
|
|
67
|
+
applicationCommitId: string;
|
|
68
|
+
policyVersionNumber: number;
|
|
69
|
+
findingsCount: number;
|
|
70
|
+
profileId: string;
|
|
71
|
+
status: ReviewRunStatus;
|
|
72
|
+
decision: ReviewRunDecision | null;
|
|
73
|
+
decisionReason: string | null;
|
|
74
|
+
startedAt: string | null;
|
|
75
|
+
completedAt: string | null;
|
|
76
|
+
created: string;
|
|
77
|
+
errorCode: string | null;
|
|
78
|
+
errorMessage: string | null;
|
|
79
|
+
}
|
|
80
|
+
export interface ReviewPolicyRunsDto {
|
|
81
|
+
policy: ReviewPolicyDto;
|
|
82
|
+
runs: ReviewPolicyRunDto[];
|
|
83
|
+
}
|
|
84
|
+
export interface ReviewPolicySummaryDto {
|
|
85
|
+
activeAgents: number;
|
|
86
|
+
agentRuns24h: number;
|
|
87
|
+
securityScans24h: number;
|
|
88
|
+
findings24h: number;
|
|
89
|
+
}
|
|
90
|
+
export type CreateReviewPolicyBody = {
|
|
91
|
+
policyType: 'built_in_security_scan';
|
|
92
|
+
} | {
|
|
93
|
+
policyType: 'security_agent';
|
|
94
|
+
name: string;
|
|
95
|
+
prompt: string;
|
|
96
|
+
};
|
|
97
|
+
export type UpdateReviewPolicyBody = {
|
|
98
|
+
status: AiAgentStatus;
|
|
99
|
+
};
|
|
100
|
+
export type UpdateReviewPolicyConfigBody = {
|
|
101
|
+
activeVersionId: string;
|
|
102
|
+
name: string;
|
|
103
|
+
prompt: string;
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const AI_AGENT_STATUSES = ['active', 'disabled'];
|
|
2
|
+
export const REVIEW_POLICY_NAME_MAX_LENGTH = 120;
|
|
3
|
+
export const REVIEW_POLICY_PROMPT_MAX_LENGTH = 10000;
|
|
4
|
+
export const REVIEW_POLICY_TYPES = ['built_in_security_scan', 'security_agent'];
|
|
5
|
+
export const REVIEW_POLICY_SOURCES = ['admin_configured', 'superblocks_managed'];
|
|
6
|
+
export const REVIEW_POLICY_TRIGGERS = ['before_deploy', 'after_checkpoint', 'manual'];
|
|
7
|
+
export const REVIEW_POLICY_EXECUTION_CONTEXTS = [
|
|
8
|
+
'edit_mode_app',
|
|
9
|
+
'superblocks_sabs_built_assets',
|
|
10
|
+
'superblocks_sabs_dependency_metadata',
|
|
11
|
+
'superblocks_sabs_source_snapshot'
|
|
12
|
+
];
|
|
13
|
+
export const REVIEW_POLICY_RUNTIMES = ['superblocks_dev_server_agent', 'superblocks_sabs'];
|
|
14
|
+
export const REVIEW_POLICY_MODES = ['advisory', 'blocking'];
|
|
15
|
+
export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent'];
|
|
16
|
+
export const REVIEW_FINDING_SOURCE_PHASES = ['built_asset', 'dependency', 'edit_mode_app', 'iac', 'image', 'source'];
|
|
17
|
+
export const REVIEW_FINDING_CATEGORIES = [
|
|
18
|
+
'external_policy',
|
|
19
|
+
'misconfiguration',
|
|
20
|
+
'security_agent',
|
|
21
|
+
'secret',
|
|
22
|
+
'sensitive_data',
|
|
23
|
+
'vulnerability'
|
|
24
|
+
];
|
|
25
|
+
// Severity and confidence order is semantically meaningful from strongest to weakest.
|
|
26
|
+
export const REVIEW_FINDING_SEVERITIES = ['critical', 'high', 'medium', 'low', 'info'];
|
|
27
|
+
export const REVIEW_FINDING_CONFIDENCES = ['high', 'medium', 'low'];
|
|
28
|
+
export const REVIEW_FINDING_SUPPRESSION_STATUSES = ['active', 'expired', 'revoked'];
|
|
29
|
+
// Lifecycle ordering is semantically meaningful; matches AiAgentRun status sequence with review-specific states.
|
|
30
|
+
export const REVIEW_RUN_STATUSES = [
|
|
31
|
+
'queued',
|
|
32
|
+
'running',
|
|
33
|
+
'passed',
|
|
34
|
+
'findings',
|
|
35
|
+
'blocked',
|
|
36
|
+
'errored',
|
|
37
|
+
'timed_out',
|
|
38
|
+
'canceled',
|
|
39
|
+
'stale'
|
|
40
|
+
];
|
|
41
|
+
// Lifecycle ordering is semantically meaningful.
|
|
42
|
+
export const REVIEW_RUN_DECISIONS = ['allowed', 'advisory_allowed', 'blocked', 'error_blocked', 'not_applicable'];
|
|
43
|
+
export const REVIEW_RUN_TRIGGERED_BYS = ['system', 'user'];
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/reviewPolicy/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAEjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,wBAAwB,EAAE,gBAAgB,CAAU,CAAC;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,qBAAqB,CAAU,CAAC;AAC1F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAe,EAAE,kBAAkB,EAAE,QAAQ,CAAU,CAAC;AAC/F,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,eAAe;IACf,+BAA+B;IAC/B,sCAAsC;IACtC,kCAAkC;CAC1B,CAAC;AACX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,8BAA8B,EAAE,kBAAkB,CAAU,CAAC;AACpG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,UAAU,CAAU,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAU,CAAC;AACpG,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAC9H,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,QAAQ;IACR,gBAAgB;IAChB,eAAe;CACP,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAChG,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAC7E,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAE7F,iHAAiH;AACjH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,SAAS;IACT,SAAS;IACT,WAAW;IACX,UAAU;IACV,OAAO;CACC,CAAC;AAEX,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,CAAU,CAAC;AAC3H,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* Parsing, validation, and compare-URL generation for git remote URLs.
|
|
5
5
|
* Used by both the UI and the vite-plugin-file-sync AI agent tooling.
|
|
6
6
|
*/
|
|
7
|
-
export declare const GITHUB_PAT_SETTINGS_URL = "https://github.com/settings/tokens";
|
|
8
7
|
export declare function isValidGitUrl(url: string): boolean;
|
|
9
8
|
export declare function isGitHubUrl(url: string): boolean;
|
|
10
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-url.d.ts","sourceRoot":"","sources":["../../src/utils/git-url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,
|
|
1
|
+
{"version":3,"file":"git-url.d.ts","sourceRoot":"","sources":["../../src/utils/git-url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAchD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8C5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACL,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,MAAM,GAAG,IAAI,CAchB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,CAAC;AAEzF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAMxD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAgB1D;AAkBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAerG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyC3D;AAOD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAoBjF"}
|
|
@@ -8,7 +8,6 @@ const HTTPS_GIT_URL_RE = /^https?:\/\/[^\s/$.?#]+(?:\.[^\s/$.?#]+)+\/[^\s/$.?#]+
|
|
|
8
8
|
const SSH_GIT_URL_RE = /^[\w-]+@[\w.-]+:[\w./-]+(\.git)?$/;
|
|
9
9
|
// ssh:// protocol format: ssh://git@host/path
|
|
10
10
|
const SSH_PROTOCOL_RE = /^ssh:\/\/[\w-]+@[\w.-]+(\/[\w./-]+)+(\.git)?\/?$/i;
|
|
11
|
-
export const GITHUB_PAT_SETTINGS_URL = 'https://github.com/settings/tokens';
|
|
12
11
|
export function isValidGitUrl(url) {
|
|
13
12
|
const trimmed = url.trim();
|
|
14
13
|
return HTTPS_GIT_URL_RE.test(trimmed) || SSH_GIT_URL_RE.test(trimmed) || SSH_PROTOCOL_RE.test(trimmed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-url.js","sourceRoot":"","sources":["../../src/utils/git-url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,gBAAgB,GAAG,qFAAqF,CAAC;AAC/G,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAC3D,8CAA8C;AAC9C,MAAM,eAAe,GAAG,mDAAmD,CAAC;AAE5E,MAAM,
|
|
1
|
+
{"version":3,"file":"git-url.js","sourceRoot":"","sources":["../../src/utils/git-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import {
|
|
2
|
+
import { getGitHubCompareUrl, gitRemoteUrlToWeb, isGitHubUrl, isValidGitUrl, sshGitUrlToHttps } from './git-url.js';
|
|
3
3
|
describe('isValidGitUrl', () => {
|
|
4
4
|
it.each([
|
|
5
5
|
'https://github.com/org/repo.git',
|
|
@@ -107,9 +107,4 @@ describe('sshGitUrlToHttps', () => {
|
|
|
107
107
|
expect(sshGitUrlToHttps('not-a-url')).toBeNull();
|
|
108
108
|
});
|
|
109
109
|
});
|
|
110
|
-
describe('GITHUB_PAT_SETTINGS_URL', () => {
|
|
111
|
-
it('is a valid URL', () => {
|
|
112
|
-
expect(GITHUB_PAT_SETTINGS_URL).toBe('https://github.com/settings/tokens');
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
110
|
//# sourceMappingURL=git-url.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-url.test.js","sourceRoot":"","sources":["../../src/utils/git-url.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"git-url.test.js","sourceRoot":"","sources":["../../src/utils/git-url.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/shared",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9589.1",
|
|
4
4
|
"description": "Superblocks Shared Resources",
|
|
5
5
|
"license": "Superblocks Community Software License",
|
|
6
6
|
"repository": "https://github.com/superblocksteam/shared.git",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"eslint-plugin-import": "^2.32.0",
|
|
56
56
|
"esprima": "^4.0.1",
|
|
57
57
|
"globals": "^17.3.0",
|
|
58
|
-
"typescript": "^
|
|
59
|
-
"typescript-eslint": "^8.
|
|
58
|
+
"typescript": "^6.0.3",
|
|
59
|
+
"typescript-eslint": "^8.59.2",
|
|
60
60
|
"vitest": "^4.0.17"
|
|
61
61
|
},
|
|
62
62
|
"engines": {
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
computeBindingKey,
|
|
5
|
+
computeDesiredSpecHash,
|
|
6
|
+
computeRequirementKey,
|
|
7
|
+
containsCredentialMaterial,
|
|
8
|
+
isSecretKey,
|
|
9
|
+
isTerminalLifecycleState,
|
|
10
|
+
redactLifecycleSecrets
|
|
11
|
+
} from './index.js';
|
|
12
|
+
|
|
13
|
+
describe('database lifecycle contracts', () => {
|
|
14
|
+
test('computes stable requirement, binding, and desired spec identifiers', async () => {
|
|
15
|
+
const requirement = {
|
|
16
|
+
logicalName: 'Orders DB',
|
|
17
|
+
engine: 'postgres',
|
|
18
|
+
version: '16',
|
|
19
|
+
sizing: {
|
|
20
|
+
storageGb: 20,
|
|
21
|
+
tier: 'shared'
|
|
22
|
+
},
|
|
23
|
+
extensions: ['pgcrypto', 'uuid-ossp']
|
|
24
|
+
} as const;
|
|
25
|
+
|
|
26
|
+
expect(computeRequirementKey(requirement)).toBe('orders-db~Orders%20DB:postgres');
|
|
27
|
+
expect(computeRequirementKey({ logicalName: 'orders/db', engine: 'postgres' })).toBe('orders-db~orders%2Fdb:postgres');
|
|
28
|
+
expect(computeRequirementKey({ logicalName: 'orders-db', engine: 'postgres' })).toBe('orders-db~orders-db:postgres');
|
|
29
|
+
expect(
|
|
30
|
+
computeBindingKey({
|
|
31
|
+
organizationId: 'org-1',
|
|
32
|
+
applicationId: 'app-1',
|
|
33
|
+
environmentClass: 'dev',
|
|
34
|
+
environmentName: 'branch/alice',
|
|
35
|
+
requirementKey: 'orders-db~Orders%20DB:postgres'
|
|
36
|
+
})
|
|
37
|
+
).toBe('org-1:app-1:dev:branch-alice~branch%2Falice:orders-db~Orders%20DB:postgres');
|
|
38
|
+
expect(
|
|
39
|
+
computeBindingKey({
|
|
40
|
+
organizationId: 'org-1',
|
|
41
|
+
applicationId: 'app-1',
|
|
42
|
+
environmentClass: 'dev',
|
|
43
|
+
environmentName: 'branch-alice',
|
|
44
|
+
requirementKey: 'orders-db~Orders%20DB:postgres'
|
|
45
|
+
})
|
|
46
|
+
).toBe('org-1:app-1:dev:branch-alice~branch-alice:orders-db~Orders%20DB:postgres');
|
|
47
|
+
|
|
48
|
+
await expect(computeDesiredSpecHash(requirement)).resolves.toBe(
|
|
49
|
+
await computeDesiredSpecHash({ ...requirement, extensions: ['uuid-ossp', 'pgcrypto'] })
|
|
50
|
+
);
|
|
51
|
+
await expect(computeDesiredSpecHash(requirement)).resolves.toBe('QsCl6RVzJVEwf4Nuk0D27rRtycYe2vQZMxcXLt9WUkQ=');
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test('hashes desired specs with locale-invariant ordering', async () => {
|
|
55
|
+
const first = await computeDesiredSpecHash({
|
|
56
|
+
logicalName: 'Éclair DB',
|
|
57
|
+
engine: 'postgres',
|
|
58
|
+
extensions: ['ä', 'z', 'a']
|
|
59
|
+
});
|
|
60
|
+
const second = await computeDesiredSpecHash({
|
|
61
|
+
logicalName: 'Éclair DB',
|
|
62
|
+
engine: 'postgres',
|
|
63
|
+
extensions: ['z', 'a', 'ä']
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
expect(first).toBe(second);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test('redacts raw credential material while preserving credential refs', () => {
|
|
70
|
+
const redacted = redactLifecycleSecrets({
|
|
71
|
+
host: 'db.internal',
|
|
72
|
+
password: 'raw-password',
|
|
73
|
+
nested: {
|
|
74
|
+
token: 'raw-token',
|
|
75
|
+
credentialRef: {
|
|
76
|
+
resolver: 'aws_secrets_manager',
|
|
77
|
+
ref: 'arn:aws:secretsmanager:us-east-1:123:secret:orders'
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
credential_refs: {
|
|
81
|
+
password: {
|
|
82
|
+
resolver: 'vault',
|
|
83
|
+
ref: 'database/orders',
|
|
84
|
+
field: 'password'
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
expect(redacted).toEqual({
|
|
90
|
+
host: 'db.internal',
|
|
91
|
+
password: '[REDACTED]',
|
|
92
|
+
nested: {
|
|
93
|
+
token: '[REDACTED]',
|
|
94
|
+
credentialRef: {
|
|
95
|
+
resolver: 'aws_secrets_manager',
|
|
96
|
+
ref: 'arn:aws:secretsmanager:us-east-1:123:secret:orders'
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
credential_refs: {
|
|
100
|
+
password: {
|
|
101
|
+
resolver: 'vault',
|
|
102
|
+
ref: 'database/orders',
|
|
103
|
+
field: 'password'
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
test('recognizes terminal lifecycle states', () => {
|
|
110
|
+
expect(isTerminalLifecycleState('ready')).toBe(true);
|
|
111
|
+
expect(isTerminalLifecycleState('failed')).toBe(true);
|
|
112
|
+
expect(isTerminalLifecycleState('provisioning')).toBe(false);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
test('flags secret-shaped keys', () => {
|
|
116
|
+
for (const key of ['password', 'PASSWORD', 'api_token', 'private_key', 'private-key', 'dsn']) {
|
|
117
|
+
expect(isSecretKey(key)).toBe(true);
|
|
118
|
+
}
|
|
119
|
+
for (const key of ['host', 'port', 'database', 'username']) {
|
|
120
|
+
expect(isSecretKey(key)).toBe(false);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
test('flags secret-shaped value content', () => {
|
|
125
|
+
expect(containsCredentialMaterial('postgres://user:pass@db.internal:5432/orders')).toBe(true);
|
|
126
|
+
expect(containsCredentialMaterial('mongodb+srv://app:secret@cluster0.example.net/db')).toBe(true);
|
|
127
|
+
expect(containsCredentialMaterial('password=hunter2;host=db.internal')).toBe(true);
|
|
128
|
+
expect(containsCredentialMaterial('{"password":"hunter2"}')).toBe(true);
|
|
129
|
+
expect(containsCredentialMaterial('host=db.internal port=5432')).toBe(false);
|
|
130
|
+
expect(containsCredentialMaterial('arn:aws:secretsmanager:us-east-1:123:secret:orders')).toBe(false);
|
|
131
|
+
});
|
|
132
|
+
});
|