@secfn/core 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +30 -322
  2. package/dist/encryption.d.ts +8 -0
  3. package/dist/encryption.d.ts.map +1 -0
  4. package/dist/encryption.js +83 -0
  5. package/dist/encryption.js.map +1 -0
  6. package/dist/errors.d.ts +24 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +47 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/id.d.ts +3 -0
  11. package/dist/id.d.ts.map +1 -0
  12. package/dist/id.js +11 -0
  13. package/dist/id.js.map +1 -0
  14. package/dist/index.d.ts +9 -11
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +9 -11
  17. package/dist/index.js.map +1 -1
  18. package/dist/scanner/reporters.d.ts +14 -0
  19. package/dist/scanner/reporters.d.ts.map +1 -0
  20. package/dist/scanner/reporters.js +85 -0
  21. package/dist/scanner/reporters.js.map +1 -0
  22. package/dist/scanner/rules.d.ts +24 -0
  23. package/dist/scanner/rules.d.ts.map +1 -0
  24. package/dist/scanner/rules.js +141 -0
  25. package/dist/scanner/rules.js.map +1 -0
  26. package/dist/scanner/scanner.d.ts +28 -0
  27. package/dist/scanner/scanner.d.ts.map +1 -0
  28. package/dist/scanner/scanner.js +104 -0
  29. package/dist/scanner/scanner.js.map +1 -0
  30. package/dist/scanner/utils.d.ts +15 -0
  31. package/dist/scanner/utils.d.ts.map +1 -0
  32. package/dist/scanner/utils.js +41 -0
  33. package/dist/scanner/utils.js.map +1 -0
  34. package/dist/schema.d.ts +9 -0
  35. package/dist/schema.d.ts.map +1 -0
  36. package/dist/schema.js +249 -0
  37. package/dist/schema.js.map +1 -0
  38. package/dist/types.d.ts +261 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +2 -0
  41. package/dist/types.js.map +1 -0
  42. package/package.json +32 -27
  43. package/dist/access-control/rbac.d.ts +0 -48
  44. package/dist/access-control/rbac.d.ts.map +0 -1
  45. package/dist/access-control/rbac.js +0 -203
  46. package/dist/access-control/rbac.js.map +0 -1
  47. package/dist/core/secfn.d.ts +0 -28
  48. package/dist/core/secfn.d.ts.map +0 -1
  49. package/dist/core/secfn.js +0 -73
  50. package/dist/core/secfn.js.map +0 -1
  51. package/dist/monitoring/security-monitor.d.ts +0 -46
  52. package/dist/monitoring/security-monitor.d.ts.map +0 -1
  53. package/dist/monitoring/security-monitor.js +0 -172
  54. package/dist/monitoring/security-monitor.js.map +0 -1
  55. package/dist/rate-limiting/rate-limiter.d.ts +0 -31
  56. package/dist/rate-limiting/rate-limiter.d.ts.map +0 -1
  57. package/dist/rate-limiting/rate-limiter.js +0 -140
  58. package/dist/rate-limiting/rate-limiter.js.map +0 -1
  59. package/dist/scanning/patterns.d.ts +0 -3
  60. package/dist/scanning/patterns.d.ts.map +0 -1
  61. package/dist/scanning/patterns.js +0 -139
  62. package/dist/scanning/patterns.js.map +0 -1
  63. package/dist/scanning/scanner.d.ts +0 -36
  64. package/dist/scanning/scanner.d.ts.map +0 -1
  65. package/dist/scanning/scanner.js +0 -152
  66. package/dist/scanning/scanner.js.map +0 -1
  67. package/dist/secrets/encryption.d.ts +0 -17
  68. package/dist/secrets/encryption.d.ts.map +0 -1
  69. package/dist/secrets/encryption.js +0 -47
  70. package/dist/secrets/encryption.js.map +0 -1
  71. package/dist/secrets/vault.d.ts +0 -43
  72. package/dist/secrets/vault.d.ts.map +0 -1
  73. package/dist/secrets/vault.js +0 -126
  74. package/dist/secrets/vault.js.map +0 -1
  75. package/dist/storage/indexeddb-storage.d.ts +0 -37
  76. package/dist/storage/indexeddb-storage.d.ts.map +0 -1
  77. package/dist/storage/indexeddb-storage.js +0 -284
  78. package/dist/storage/indexeddb-storage.js.map +0 -1
  79. package/dist/types/index.d.ts +0 -189
  80. package/dist/types/index.d.ts.map +0 -1
  81. package/dist/types/index.js +0 -2
  82. package/dist/types/index.js.map +0 -1
  83. package/dist/utils/helpers.d.ts +0 -8
  84. package/dist/utils/helpers.d.ts.map +0 -1
  85. package/dist/utils/helpers.js +0 -73
  86. package/dist/utils/helpers.js.map +0 -1
  87. package/examples/basic-usage.ts +0 -143
  88. package/src/access-control/rbac.ts +0 -271
  89. package/src/core/secfn.ts +0 -90
  90. package/src/index.ts +0 -27
  91. package/src/monitoring/security-monitor.ts +0 -245
  92. package/src/rate-limiting/rate-limiter.ts +0 -181
  93. package/src/scanning/patterns.ts +0 -140
  94. package/src/scanning/scanner.ts +0 -199
  95. package/src/secrets/encryption.ts +0 -74
  96. package/src/secrets/vault.ts +0 -187
  97. package/src/storage/indexeddb-storage.ts +0 -355
  98. package/src/types/index.ts +0 -213
  99. package/src/utils/helpers.ts +0 -84
  100. package/tsconfig.json +0 -26
package/dist/schema.js ADDED
@@ -0,0 +1,249 @@
1
+ export const SECFN_SCHEMA_VERSION = 4;
2
+ export function getSecFnSchema() {
3
+ return withIsoDateDefaults([
4
+ {
5
+ modelName: "secfn_namespaces",
6
+ fields: {
7
+ id: { type: "string", required: true },
8
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
9
+ slug: { type: "string", required: true },
10
+ label: { type: "string", required: true },
11
+ description: { type: "string", required: false },
12
+ createdBy: { type: "string", required: true, fieldName: "created_by" },
13
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
14
+ updatedAt: { type: "date", required: true, fieldName: "updated_at" },
15
+ metadata: { type: "json", required: false },
16
+ },
17
+ indexes: [
18
+ { name: "idx_secfn_namespaces_lookup", fields: ["tenantId", "slug"], unique: true },
19
+ ],
20
+ },
21
+ {
22
+ modelName: "secfn_environments",
23
+ fields: {
24
+ id: { type: "string", required: true },
25
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
26
+ namespaceId: { type: "string", required: false, fieldName: "namespace_id" },
27
+ name: { type: "string", required: true },
28
+ description: { type: "string", required: false },
29
+ createdBy: { type: "string", required: true, fieldName: "created_by" },
30
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
31
+ updatedAt: { type: "date", required: true, fieldName: "updated_at" },
32
+ metadata: { type: "json", required: false },
33
+ },
34
+ indexes: [
35
+ { name: "idx_secfn_environments_lookup", fields: ["tenantId", "namespaceId", "name"], unique: true },
36
+ ],
37
+ },
38
+ {
39
+ modelName: "secfn_secrets",
40
+ fields: {
41
+ id: { type: "string", required: true },
42
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
43
+ namespaceId: { type: "string", required: true, fieldName: "namespace_id" },
44
+ namespace: { type: "string", required: false },
45
+ key: { type: "string", required: true },
46
+ environmentId: { type: "string", required: true, fieldName: "environment_id" },
47
+ environment: { type: "string", required: false },
48
+ description: { type: "string", required: false },
49
+ tags: { type: "json", required: true },
50
+ currentVersion: { type: "number", required: true, fieldName: "current_version" },
51
+ revokedAt: { type: "date", required: false, fieldName: "revoked_at" },
52
+ createdBy: { type: "string", required: true, fieldName: "created_by" },
53
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
54
+ updatedAt: { type: "date", required: true, fieldName: "updated_at" },
55
+ metadata: { type: "json", required: false },
56
+ },
57
+ indexes: [
58
+ { name: "idx_secfn_secrets_lookup", fields: ["tenantId", "namespaceId", "environmentId", "key"], unique: true },
59
+ { name: "idx_secfn_secrets_revoked", fields: ["revokedAt"] },
60
+ ],
61
+ },
62
+ {
63
+ modelName: "secfn_secret_versions",
64
+ fields: {
65
+ id: { type: "string", required: true },
66
+ secretId: { type: "string", required: true, fieldName: "secret_id" },
67
+ version: { type: "number", required: true },
68
+ encryptedPayload: { type: "json", required: true, fieldName: "encrypted_payload" },
69
+ createdBy: { type: "string", required: true, fieldName: "created_by" },
70
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
71
+ },
72
+ indexes: [
73
+ { name: "idx_secfn_secret_versions_secret_version", fields: ["secretId", "version"], unique: true },
74
+ ],
75
+ },
76
+ {
77
+ modelName: "secfn_secret_sets",
78
+ fields: {
79
+ id: { type: "string", required: true },
80
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
81
+ namespaceId: { type: "string", required: true, fieldName: "namespace_id" },
82
+ namespace: { type: "string", required: false },
83
+ environmentId: { type: "string", required: false, fieldName: "environment_id" },
84
+ name: { type: "string", required: true },
85
+ description: { type: "string", required: false },
86
+ createdBy: { type: "string", required: true, fieldName: "created_by" },
87
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
88
+ updatedAt: { type: "date", required: true, fieldName: "updated_at" },
89
+ },
90
+ indexes: [
91
+ { name: "idx_secfn_secret_sets_lookup", fields: ["tenantId", "namespaceId", "environmentId", "name"], unique: true },
92
+ ],
93
+ },
94
+ {
95
+ modelName: "secfn_secret_set_members",
96
+ fields: {
97
+ id: { type: "string", required: true },
98
+ setId: { type: "string", required: true, fieldName: "set_id" },
99
+ secretId: { type: "string", required: true, fieldName: "secret_id" },
100
+ alias: { type: "string", required: false },
101
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
102
+ },
103
+ indexes: [
104
+ { name: "idx_secfn_secret_set_members_set", fields: ["setId"] },
105
+ ],
106
+ },
107
+ {
108
+ modelName: "secfn_service_tokens",
109
+ fields: {
110
+ id: { type: "string", required: true },
111
+ tokenHash: { type: "string", required: true, fieldName: "token_hash" },
112
+ name: { type: "string", required: true },
113
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
114
+ namespace: { type: "string", required: false },
115
+ environment: { type: "string", required: false },
116
+ scopes: { type: "json", required: true },
117
+ expiresAt: { type: "date", required: false, fieldName: "expires_at" },
118
+ revokedAt: { type: "date", required: false, fieldName: "revoked_at" },
119
+ createdBy: { type: "string", required: true, fieldName: "created_by" },
120
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
121
+ lastUsedAt: { type: "date", required: false, fieldName: "last_used_at" },
122
+ },
123
+ indexes: [
124
+ { name: "idx_secfn_service_tokens_hash", fields: ["tokenHash"], unique: true },
125
+ ],
126
+ },
127
+ {
128
+ modelName: "secfn_roles",
129
+ fields: {
130
+ id: { type: "string", required: true },
131
+ name: { type: "string", required: true },
132
+ description: { type: "string", required: false },
133
+ permissions: { type: "json", required: true },
134
+ inherits: { type: "json", required: false },
135
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
136
+ updatedAt: { type: "date", required: true, fieldName: "updated_at" },
137
+ metadata: { type: "json", required: false },
138
+ },
139
+ indexes: [
140
+ { name: "idx_secfn_roles_name", fields: ["name"], unique: true },
141
+ ],
142
+ },
143
+ {
144
+ modelName: "secfn_role_bindings",
145
+ fields: {
146
+ id: { type: "string", required: true },
147
+ principalId: { type: "string", required: true, fieldName: "principal_id" },
148
+ roleId: { type: "string", required: true, fieldName: "role_id" },
149
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
150
+ namespace: { type: "string", required: false },
151
+ resourceId: { type: "string", required: false, fieldName: "resource_id" },
152
+ expiresAt: { type: "date", required: false, fieldName: "expires_at" },
153
+ createdAt: { type: "date", required: true, fieldName: "created_at" },
154
+ createdBy: { type: "string", required: false, fieldName: "created_by" },
155
+ },
156
+ indexes: [
157
+ { name: "idx_secfn_role_bindings_principal", fields: ["principalId"] },
158
+ ],
159
+ },
160
+ {
161
+ modelName: "secfn_audit_events",
162
+ fields: {
163
+ id: { type: "string", required: true },
164
+ timestamp: { type: "date", required: true },
165
+ type: { type: "string", required: true },
166
+ severity: { type: "string", required: true },
167
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
168
+ namespaceId: { type: "string", required: false, fieldName: "namespace_id" },
169
+ namespace: { type: "string", required: false },
170
+ environmentId: { type: "string", required: false, fieldName: "environment_id" },
171
+ environment: { type: "string", required: false },
172
+ actorId: { type: "string", required: false, fieldName: "actor_id" },
173
+ ip: { type: "string", required: false },
174
+ userAgent: { type: "string", required: false, fieldName: "user_agent" },
175
+ resource: { type: "string", required: false },
176
+ action: { type: "string", required: false },
177
+ requestId: { type: "string", required: false, fieldName: "request_id" },
178
+ metadata: { type: "json", required: true },
179
+ resolved: { type: "boolean", required: true },
180
+ resolvedAt: { type: "date", required: false, fieldName: "resolved_at" },
181
+ resolvedBy: { type: "string", required: false, fieldName: "resolved_by" },
182
+ notes: { type: "string", required: false },
183
+ },
184
+ indexes: [
185
+ { name: "idx_secfn_audit_events_timestamp", fields: ["timestamp"] },
186
+ { name: "idx_secfn_audit_events_type", fields: ["type"] },
187
+ { name: "idx_secfn_audit_events_severity", fields: ["severity"] },
188
+ ],
189
+ },
190
+ {
191
+ modelName: "secfn_scan_runs",
192
+ fields: {
193
+ id: { type: "string", required: true },
194
+ tenantId: { type: "string", required: false, fieldName: "tenant_id" },
195
+ startedAt: { type: "date", required: true, fieldName: "started_at" },
196
+ completedAt: { type: "date", required: false, fieldName: "completed_at" },
197
+ target: { type: "string", required: true },
198
+ status: { type: "string", required: true },
199
+ findingCount: { type: "number", required: true, fieldName: "finding_count" },
200
+ metadata: { type: "json", required: false },
201
+ },
202
+ indexes: [{ name: "idx_secfn_scan_runs_tenant", fields: ["tenantId"] }],
203
+ },
204
+ {
205
+ modelName: "secfn_scan_findings",
206
+ fields: {
207
+ id: { type: "string", required: true },
208
+ runId: { type: "string", required: false, fieldName: "run_id" },
209
+ ruleId: { type: "string", required: true, fieldName: "rule_id" },
210
+ ruleName: { type: "string", required: true, fieldName: "rule_name" },
211
+ severity: { type: "string", required: true },
212
+ message: { type: "string", required: true },
213
+ file: { type: "string", required: true },
214
+ line: { type: "number", required: true },
215
+ column: { type: "number", required: true },
216
+ redactedMatch: { type: "string", required: false, fieldName: "redacted_match" },
217
+ fingerprint: { type: "string", required: true },
218
+ context: { type: "string", required: false },
219
+ metadata: { type: "json", required: false },
220
+ },
221
+ indexes: [
222
+ { name: "idx_secfn_scan_findings_run", fields: ["runId"] },
223
+ { name: "idx_secfn_scan_findings_severity", fields: ["severity"] },
224
+ ],
225
+ },
226
+ ]);
227
+ }
228
+ export function getSchema() {
229
+ return {
230
+ version: SECFN_SCHEMA_VERSION,
231
+ schemas: getSecFnSchema(),
232
+ };
233
+ }
234
+ function withIsoDateDefaults(tables) {
235
+ return tables.map((table) => ({
236
+ ...table,
237
+ fields: Object.fromEntries(Object.entries(table.fields).map(([name, field]) => [
238
+ name,
239
+ field.type === "date" || field.type === "datetime"
240
+ ? {
241
+ dateValueType: "iso-string",
242
+ dateStorageType: "timestamptz",
243
+ ...field,
244
+ }
245
+ : field,
246
+ ])),
247
+ }));
248
+ }
249
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ export type SecFnEnvironment = string;
2
+ export type SecFnSeverity = "critical" | "high" | "medium" | "low" | "info";
3
+ export interface SecFnLogger {
4
+ info(message: string, context?: Record<string, unknown>): void;
5
+ warn(message: string, context?: Record<string, unknown>): void;
6
+ error(message: string, context?: Record<string, unknown>): void;
7
+ debug(message: string, context?: Record<string, unknown>): void;
8
+ }
9
+ export interface KeyMaterial {
10
+ keyId: string;
11
+ secret: string | Uint8Array;
12
+ }
13
+ export interface KeyProvider {
14
+ resolveKey(input?: {
15
+ keyId?: string;
16
+ purpose?: "encrypt" | "decrypt";
17
+ }): Promise<KeyMaterial> | KeyMaterial;
18
+ }
19
+ export interface SecFnEncryptionConfig {
20
+ masterKey: string;
21
+ keyId?: string;
22
+ }
23
+ export interface SecFnSecretScope {
24
+ tenantId?: string;
25
+ namespaceId?: string;
26
+ namespace?: string;
27
+ environmentId?: string;
28
+ environment?: SecFnEnvironment;
29
+ }
30
+ export interface SecFnRuntimeClientConfig extends SecFnSecretScope {
31
+ endpoint: string;
32
+ apiKey: string;
33
+ cache?: {
34
+ ttlMs: number;
35
+ staleWhileRevalidate?: boolean;
36
+ };
37
+ }
38
+ export interface SecFnServerCoreConfig {
39
+ basePath?: string;
40
+ encryption?: SecFnEncryptionConfig;
41
+ }
42
+ export interface SecFnRateLimitPolicyConfig {
43
+ enabled?: boolean;
44
+ algorithm?: "fixed-window" | "sliding-window" | "token-bucket";
45
+ windowMs?: number;
46
+ limits?: {
47
+ perIP?: number;
48
+ perUser?: number;
49
+ perEndpoint?: number;
50
+ };
51
+ }
52
+ export interface EncryptedSecretPayload {
53
+ algorithm: "AES-256-GCM";
54
+ keyId: string;
55
+ iv: string;
56
+ salt: string;
57
+ authTag: string;
58
+ ciphertext: string;
59
+ }
60
+ export interface SecretAadInput {
61
+ tenantId?: string;
62
+ namespace?: string;
63
+ secretId: string;
64
+ version: number;
65
+ }
66
+ export interface NamespaceRecord {
67
+ id: string;
68
+ tenantId?: string;
69
+ slug: string;
70
+ label: string;
71
+ description?: string;
72
+ createdBy: string;
73
+ createdAt: string;
74
+ updatedAt: string;
75
+ metadata?: Record<string, unknown>;
76
+ }
77
+ export interface EnvironmentRecord {
78
+ id: string;
79
+ tenantId?: string;
80
+ namespaceId?: string;
81
+ name: string;
82
+ description?: string;
83
+ createdBy: string;
84
+ createdAt: string;
85
+ updatedAt: string;
86
+ metadata?: Record<string, unknown>;
87
+ }
88
+ export interface SecretRecord {
89
+ id: string;
90
+ tenantId?: string;
91
+ namespaceId: string;
92
+ namespace?: string;
93
+ key: string;
94
+ environmentId: string;
95
+ environment?: SecFnEnvironment;
96
+ description?: string;
97
+ tags: string[];
98
+ currentVersion: number;
99
+ revokedAt?: string;
100
+ createdBy: string;
101
+ createdAt: string;
102
+ updatedAt: string;
103
+ metadata?: Record<string, unknown>;
104
+ }
105
+ export interface SecretVersionRecord {
106
+ id: string;
107
+ secretId: string;
108
+ version: number;
109
+ encryptedPayload: EncryptedSecretPayload;
110
+ createdBy: string;
111
+ createdAt: string;
112
+ }
113
+ export interface SecretSetRecord {
114
+ id: string;
115
+ /** Optional immutable environment binding; legacy sets are unbound. */
116
+ environmentId?: string;
117
+ tenantId?: string;
118
+ namespaceId: string;
119
+ namespace?: string;
120
+ name: string;
121
+ description?: string;
122
+ createdBy: string;
123
+ createdAt: string;
124
+ updatedAt: string;
125
+ }
126
+ export interface SecretSetMemberRecord {
127
+ id: string;
128
+ setId: string;
129
+ secretId: string;
130
+ alias?: string;
131
+ createdAt: string;
132
+ }
133
+ export interface ServiceTokenRecord {
134
+ id: string;
135
+ tokenHash: string;
136
+ name: string;
137
+ tenantId?: string;
138
+ namespace?: string;
139
+ environment?: SecFnEnvironment;
140
+ scopes: string[];
141
+ expiresAt?: string;
142
+ revokedAt?: string;
143
+ createdBy: string;
144
+ createdAt: string;
145
+ lastUsedAt?: string;
146
+ }
147
+ export interface RoleRecord {
148
+ id: string;
149
+ name: string;
150
+ description?: string;
151
+ permissions: string[];
152
+ inherits?: string[];
153
+ createdAt: string;
154
+ updatedAt: string;
155
+ metadata?: Record<string, unknown>;
156
+ }
157
+ export interface RoleBindingRecord {
158
+ id: string;
159
+ principalId: string;
160
+ roleId: string;
161
+ tenantId?: string;
162
+ namespace?: string;
163
+ resourceId?: string;
164
+ expiresAt?: string;
165
+ createdAt: string;
166
+ createdBy?: string;
167
+ }
168
+ export type SecurityEventType = "auth_failure" | "rate_limit_exceeded" | "unauthorized_access" | "secret_accessed" | "permission_denied" | "suspicious_activity" | "secret_exposed" | "policy_violation";
169
+ export interface SecurityAuditEvent {
170
+ id: string;
171
+ timestamp: string;
172
+ type: SecurityEventType;
173
+ severity: SecFnSeverity;
174
+ tenantId?: string;
175
+ namespaceId?: string;
176
+ namespace?: string;
177
+ environmentId?: string;
178
+ environment?: SecFnEnvironment;
179
+ actorId?: string;
180
+ ip?: string;
181
+ userAgent?: string;
182
+ resource?: string;
183
+ action?: string;
184
+ requestId?: string;
185
+ metadata: Record<string, unknown>;
186
+ resolved: boolean;
187
+ resolvedAt?: string;
188
+ resolvedBy?: string;
189
+ notes?: string;
190
+ }
191
+ export interface SecurityMetrics {
192
+ totalEvents: number;
193
+ eventsByType: Record<string, number>;
194
+ eventsBySeverity: Record<string, number>;
195
+ topActors: Array<{
196
+ actorId: string;
197
+ count: number;
198
+ }>;
199
+ topIps: Array<{
200
+ ip: string;
201
+ count: number;
202
+ }>;
203
+ }
204
+ export interface SecurityScanRun {
205
+ id: string;
206
+ tenantId?: string;
207
+ startedAt: string;
208
+ completedAt?: string;
209
+ target: string;
210
+ status: "running" | "completed" | "failed";
211
+ findingCount: number;
212
+ metadata?: Record<string, unknown>;
213
+ }
214
+ export interface SecurityFinding {
215
+ id: string;
216
+ ruleId: string;
217
+ ruleName: string;
218
+ severity: SecFnSeverity;
219
+ message: string;
220
+ file: string;
221
+ line: number;
222
+ column: number;
223
+ match?: string;
224
+ redactedMatch?: string;
225
+ fingerprint: string;
226
+ context?: string;
227
+ metadata?: Record<string, unknown>;
228
+ }
229
+ export interface SecurityRuleContext {
230
+ target: ScanTarget;
231
+ content: string;
232
+ }
233
+ export interface SecurityRule {
234
+ id: string;
235
+ name: string;
236
+ description: string;
237
+ severity: SecFnSeverity;
238
+ evaluate(context: SecurityRuleContext): SecurityFinding[];
239
+ }
240
+ export interface RulePack {
241
+ id: string;
242
+ name: string;
243
+ rules: SecurityRule[];
244
+ }
245
+ export interface ScanTarget {
246
+ path: string;
247
+ displayPath?: string;
248
+ }
249
+ export type ScanFormat = "table" | "json" | "sarif";
250
+ export interface RuntimeSecretResponse {
251
+ key: string;
252
+ value: string;
253
+ environment?: SecFnEnvironment;
254
+ version: number;
255
+ }
256
+ export interface RuntimeSecretSetResponse {
257
+ name: string;
258
+ secrets: Record<string, string>;
259
+ namespace?: string;
260
+ }
261
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,18 +1,32 @@
1
1
  {
2
2
  "name": "@secfn/core",
3
- "version": "0.0.1",
4
- "description": "Comprehensive self-hosted security platform for developers",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
3
+ "version": "0.0.3",
4
+ "description": "Core contracts, encryption, scanning, and schema primitives for SecFn",
7
5
  "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./id": {
14
+ "types": "./dist/id.d.ts",
15
+ "default": "./dist/id.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
8
21
  "scripts": {
9
22
  "build": "tsc",
10
23
  "build:watch": "tsc --watch",
11
- "test": "vitest",
24
+ "test": "vitest run",
12
25
  "test:watch": "vitest --watch",
13
26
  "test:coverage": "vitest --coverage",
14
- "lint": "eslint src/**/*.ts",
15
- "typecheck": "tsc --noEmit"
27
+ "lint": "eslint \"src/**/*.ts\"",
28
+ "typecheck": "tsc --noEmit",
29
+ "clean": "rm -rf dist"
16
30
  },
17
31
  "keywords": [
18
32
  "security",
@@ -28,26 +42,21 @@
28
42
  "author": "21n",
29
43
  "license": "MIT",
30
44
  "dependencies": {
31
- "glob": "^11.0.0",
32
- "simple-git": "^3.27.0"
45
+ "fast-glob": "^3.3.3"
33
46
  },
34
47
  "devDependencies": {
48
+ "@superfunctions/db": "0.3.0",
35
49
  "@types/node": "^20.0.0",
36
- "typescript": "^5.6.0",
37
- "vitest": "^3.2.4",
38
- "fake-indexeddb": "^6.0.0",
50
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
51
+ "@typescript-eslint/parser": "^8.0.0",
39
52
  "@vitest/coverage-v8": "^3.2.4",
40
53
  "eslint": "^9.0.0",
41
- "@typescript-eslint/eslint-plugin": "^8.0.0",
42
- "@typescript-eslint/parser": "^8.0.0"
54
+ "fake-indexeddb": "^6.0.0",
55
+ "typescript": "^5.6.0",
56
+ "vitest": "^3.2.4"
43
57
  },
44
58
  "peerDependencies": {
45
- "@superfunctions/db": "^0.1.0"
46
- },
47
- "peerDependenciesMeta": {
48
- "@superfunctions/db": {
49
- "optional": true
50
- }
59
+ "@superfunctions/db": "0.3.0"
51
60
  },
52
61
  "bugs": {
53
62
  "url": "https://github.com/21nCo/super-functions/issues"
@@ -55,14 +64,10 @@
55
64
  "repository": {
56
65
  "type": "git",
57
66
  "url": "git+https://github.com/21nCo/super-functions.git",
58
- "directory": "secfn/typescript"
67
+ "directory": "secfn/core"
59
68
  },
60
69
  "publishConfig": {
61
70
  "access": "public"
62
71
  },
63
- "superfunctions": {
64
- "initFunction": "secFn",
65
- "schemaVersion": 1,
66
- "namespace": "secfn"
67
- }
68
- }
72
+ "gitHead": "11f7e104d2d59f62ac94ab2dd06fc01144d0390b"
73
+ }