sporades 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +155 -3
- package/README.md +16 -2
- package/bin/sporades-host-helper.js +34 -12
- package/bin/sporades.js +13082 -13170
- package/dist/acl-runtime.d.ts +107 -0
- package/dist/acl-runtime.d.ts.map +1 -0
- package/dist/acl-runtime.js +806 -0
- package/dist/acl-runtime.js.map +1 -0
- package/dist/auth-runtime.d.ts +262 -0
- package/dist/auth-runtime.d.ts.map +1 -0
- package/dist/auth-runtime.js +3015 -0
- package/dist/auth-runtime.js.map +1 -0
- package/dist/bundle-pipeline.d.ts.map +1 -1
- package/dist/bundle-pipeline.js +15 -3
- package/dist/bundle-pipeline.js.map +1 -1
- package/dist/cli/cli-help.d.ts +2 -2
- package/dist/cli/cli-help.js +1 -1
- package/dist/cli/cli-version.d.ts +1 -1
- package/dist/cli/cli-version.js +1 -1
- package/dist/cli/project-config.d.ts +1 -0
- package/dist/cli/project-config.d.ts.map +1 -1
- package/dist/cli/project-config.js +39 -0
- package/dist/cli/project-config.js.map +1 -1
- package/dist/cli/sporades.js +128 -2
- package/dist/cli/sporades.js.map +1 -1
- package/dist/database-runtime.d.ts +66 -0
- package/dist/database-runtime.d.ts.map +1 -0
- package/dist/database-runtime.js +1911 -0
- package/dist/database-runtime.js.map +1 -0
- package/dist/file-storage-runtime.d.ts +183 -0
- package/dist/file-storage-runtime.d.ts.map +1 -0
- package/dist/file-storage-runtime.js +1040 -0
- package/dist/file-storage-runtime.js.map +1 -0
- package/dist/http-runtime.d.ts +53 -0
- package/dist/http-runtime.d.ts.map +1 -0
- package/dist/http-runtime.js +579 -0
- package/dist/http-runtime.js.map +1 -0
- package/dist/inspection-sql.d.ts +104 -0
- package/dist/inspection-sql.d.ts.map +1 -0
- package/dist/inspection-sql.js +872 -0
- package/dist/inspection-sql.js.map +1 -0
- package/dist/jobs-runtime.d.ts +83 -0
- package/dist/jobs-runtime.d.ts.map +1 -0
- package/dist/jobs-runtime.js +633 -0
- package/dist/jobs-runtime.js.map +1 -0
- package/dist/log-index-guard.d.ts +5 -0
- package/dist/log-index-guard.d.ts.map +1 -0
- package/dist/log-index-guard.js +112 -0
- package/dist/log-index-guard.js.map +1 -0
- package/dist/log-index-storage.d.ts +10 -0
- package/dist/log-index-storage.d.ts.map +1 -0
- package/dist/log-index-storage.js +210 -0
- package/dist/log-index-storage.js.map +1 -0
- package/dist/mail-runtime.d.ts +23 -0
- package/dist/mail-runtime.d.ts.map +1 -0
- package/dist/mail-runtime.js +1167 -0
- package/dist/mail-runtime.js.map +1 -0
- package/dist/maybe-promise.d.ts +4 -0
- package/dist/maybe-promise.d.ts.map +1 -0
- package/dist/maybe-promise.js +57 -0
- package/dist/maybe-promise.js.map +1 -0
- package/dist/package-root.d.ts +2 -0
- package/dist/package-root.d.ts.map +1 -0
- package/dist/package-root.js +37 -0
- package/dist/package-root.js.map +1 -0
- package/dist/runtime-errors.d.ts +13 -0
- package/dist/runtime-errors.d.ts.map +1 -0
- package/dist/runtime-errors.js +87 -0
- package/dist/runtime-errors.js.map +1 -0
- package/dist/runtime-log-policy.d.ts +5 -0
- package/dist/runtime-log-policy.d.ts.map +1 -0
- package/dist/runtime-log-policy.js +50 -0
- package/dist/runtime-log-policy.js.map +1 -0
- package/dist/server-runtime-source.d.ts +53 -1360
- package/dist/server-runtime-source.d.ts.map +1 -1
- package/dist/server-runtime-source.js +2657 -11437
- package/dist/server-runtime-source.js.map +1 -1
- package/dist/stored-row-decoding.d.ts +7 -0
- package/dist/stored-row-decoding.d.ts.map +1 -0
- package/dist/stored-row-decoding.js +69 -0
- package/dist/stored-row-decoding.js.map +1 -0
- package/dist/stored-value-coding.d.ts +9 -0
- package/dist/stored-value-coding.d.ts.map +1 -0
- package/dist/stored-value-coding.js +160 -0
- package/dist/stored-value-coding.js.map +1 -0
- package/dist/templates/client-runtime-template.d.ts.map +1 -1
- package/dist/templates/client-runtime-template.js +18 -0
- package/dist/templates/client-runtime-template.js.map +1 -1
- package/dist/templates/scaffold-template.js +13 -13
- package/dist/templates/server-bundle-entry.d.ts +3 -0
- package/dist/templates/server-bundle-entry.d.ts.map +1 -0
- package/dist/templates/server-bundle-entry.js +235 -0
- package/dist/templates/server-bundle-entry.js.map +1 -0
- package/dist/templates/server-bundle-module-graph.d.ts +10 -0
- package/dist/templates/server-bundle-module-graph.d.ts.map +1 -0
- package/dist/templates/server-bundle-module-graph.js +126 -0
- package/dist/templates/server-bundle-module-graph.js.map +1 -0
- package/dist/user-preferences-runtime.d.ts +25 -0
- package/dist/user-preferences-runtime.d.ts.map +1 -0
- package/dist/user-preferences-runtime.js +136 -0
- package/dist/user-preferences-runtime.js.map +1 -0
- package/package.json +4 -4
- package/src/types/client.d.ts +18 -0
- package/src/types/server.d.ts +37 -0
- package/dist/templates/server-bundle-template.d.ts +0 -8
- package/dist/templates/server-bundle-template.d.ts.map +0 -1
- package/dist/templates/server-bundle-template.js +0 -244
- package/dist/templates/server-bundle-template.js.map +0 -1
package/CHANGES.md
CHANGED
|
@@ -1,9 +1,161 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
-
## Unreleased - 2026-08-
|
|
3
|
+
## Unreleased - 2026-08-09
|
|
4
4
|
|
|
5
|
-
Changes since v0.6.
|
|
5
|
+
Changes since v0.6.6.
|
|
6
|
+
|
|
7
|
+
### ⚠️ Breaking Changes
|
|
8
|
+
|
|
9
|
+
- Add runtime-owned password reset links (2affdf7).
|
|
10
|
+
|
|
11
|
+
### 🚀 Features
|
|
12
|
+
|
|
13
|
+
- Sporades hub concept (24bb880).
|
|
14
|
+
- Add runtime bundle module boundaries PRD and tickets (e04a5b8).
|
|
15
|
+
- Add issue 11: extract the shared method set behind an engine seam (06798a2).
|
|
16
|
+
- Add prefactor issue 07 to open a conflict-free conformance seam (62ee7c2).
|
|
17
|
+
- Add Database Adapter Engine Conformance spec (229ed2e).
|
|
6
18
|
|
|
7
19
|
### 🐛 Bug Fixes
|
|
8
20
|
|
|
9
|
-
-
|
|
21
|
+
- Fix Campfire async database mutations (96ebc5c).
|
|
22
|
+
- Fix docs repository context link (ed5e201).
|
|
23
|
+
- Fix refactor follow-up correctness gaps (f87ad5e).
|
|
24
|
+
- Correct the pre-move export count in http-runtime's header (838eb11).
|
|
25
|
+
- Correct the jobs note the ACL batch made stale (9831e30).
|
|
26
|
+
- Correct the batch 6 accessor counts and drop the createHmac import the S3 path took with it (df54951).
|
|
27
|
+
- Correct the batch 5 straggler count and record batches 4-5 findings (47f8811).
|
|
28
|
+
- Fix the photo-library test's schedule race, raise the Node floor, add user preferences as batch 5 (8cbe66f).
|
|
29
|
+
- Correct issue 08 blocker parsing (ec1c359).
|
|
30
|
+
- Fix override taxonomy and ACL fail-closed scope in adapter ADRs (1e001ef).
|
|
31
|
+
- Correct adapter contract ADR against the actual adapters (ded9ea0).
|
|
32
|
+
- Fix engine-agnostic result handling in the Database adapter (b723ba0).
|
|
33
|
+
|
|
34
|
+
### 🔧 Improvements
|
|
35
|
+
|
|
36
|
+
- Add shutdown hint (2daa7db).
|
|
37
|
+
- Add exit hint (bb0550b).
|
|
38
|
+
- Verify ticket 05 against a real Postgres, and correct the baseline note (3d1d838).
|
|
39
|
+
- Delete the dead mailJsonSize, and record the dead-code inventory under ticket 05 (014044c).
|
|
40
|
+
- Mark ticket 04 done and record what the nine batches found (d21957c).
|
|
41
|
+
- Record batch 7's plant-caller and comment-suppression findings (ac4c345).
|
|
42
|
+
- Drop two dead imports, and correct three counts the batch made stale (dabe053).
|
|
43
|
+
- Record batch 6's reverse-graph and orphan-blocker rules (04f7211).
|
|
44
|
+
- Move the file and object storage domain into a module, with the sync/async bridge it needed (42f097a).
|
|
45
|
+
- Stop the schedule skew probe scanning eight years of minutes on every bundle build (3e19121).
|
|
46
|
+
- Record open items raised by batches 1-3 (9d2e0b3).
|
|
47
|
+
- Record two known flaky tests for the migration batches (bc6e911).
|
|
48
|
+
- Record the verification policy for ticket 04's batches (40d1f16).
|
|
49
|
+
- Make ticket 04 concrete: eight named batches in landing order (1c3722c).
|
|
50
|
+
- Mark ticket 03 done (ce064ce).
|
|
51
|
+
- Mark ticket 01 done; close issue 17 as superseded by it (ca59c0e).
|
|
52
|
+
- Mark ticket 02 done (c91f102).
|
|
53
|
+
- Mark issue 12 done (e9d0842).
|
|
54
|
+
- Mark issue 16 done (38610b8).
|
|
55
|
+
- Serialize the bundle preamble constants (f8f5daf).
|
|
56
|
+
- Mark issue 15 done; file issue 17 for a live inspection-query injection (71ff7c3).
|
|
57
|
+
- Mark issue 13 done; file issue 16 for the preamble constant duplication (1845e89).
|
|
58
|
+
- Mark issue 14 done (1821ad4).
|
|
59
|
+
- Record the identifier-casing decision on issue 12 (0a4d629).
|
|
60
|
+
- Mark issue 11 done; file issue 15 for the SQL skipper blind spot (a871d9c).
|
|
61
|
+
- Consolidate the removed-override notes in the two service adapters (5eb91bd).
|
|
62
|
+
- Consume an OAuth state in one statement on every engine (58a4149).
|
|
63
|
+
- Take the catalog queries from the dialect (3f2338e).
|
|
64
|
+
- Take the upsert form from the dialect (8eb82ca).
|
|
65
|
+
- Define the Database adapter method set once, behind a dialect (773f46f).
|
|
66
|
+
- Mark issue 10 done; file issues 13 and 14 from its review (09c8370).
|
|
67
|
+
- Mark issue 09 done (a642324).
|
|
68
|
+
- Record the app-table collision hazard on issue 12 (9aa3695).
|
|
69
|
+
- Mark issue 08 done (77c077f).
|
|
70
|
+
- File issue 12 and record how to run the Postgres leg locally (42664c0).
|
|
71
|
+
- Declare issue 11's dependency on issue 08 explicitly (e2d1a1d).
|
|
72
|
+
- Record the Log index tie-break decision on issue 10 (171976a).
|
|
73
|
+
- File issues 09 and 10 for items routed out of issues 05 and 06 (d508a7d).
|
|
74
|
+
- Mark issue 05 done (603bbe4).
|
|
75
|
+
- Mark issues 03 and 04 done; add issue 08 for Postgres column mapping (79d228d).
|
|
76
|
+
- Mark issue 07 done (07f88dc).
|
|
77
|
+
- Break Database Adapter Engine Conformance into tickets (ca1904f).
|
|
78
|
+
- Rebuild generated bundle and dist output (71f3820).
|
|
79
|
+
|
|
80
|
+
### 📝 Documentation
|
|
81
|
+
|
|
82
|
+
- Split feature reference into focused pages (2209883).
|
|
83
|
+
- Expand template and framework guide (ad3df2f).
|
|
84
|
+
- Document database backend configuration (a500d47).
|
|
85
|
+
- Move SMTP documentation outside of sealed envelope sub-sections (dc38db9).
|
|
86
|
+
- Close ticket 05: update the ADRs, delete three dead functions, record the trade (a401b16).
|
|
87
|
+
- Record what batch 9 cost and what it found, in ADR-0041 and ADR-0042 (16f7e3e).
|
|
88
|
+
- Record batch 8's shape finding, its cycle, and what its probe would have dropped (9f743e9).
|
|
89
|
+
- Record batch 7 in ADR-0041, and correct two stale batch numbers (c6e123d).
|
|
90
|
+
- Record batch 6's findings in ADR-0041 and ADR-0042 (abcb177).
|
|
91
|
+
- Record batch 5's findings in ADR-0041 (c95ec27).
|
|
92
|
+
- Move the jobs and schedules domain into a module (0ed63e2).
|
|
93
|
+
- Move the auth domain into a module (81ae7c6).
|
|
94
|
+
- Move the mail domain into a module (6e4645e).
|
|
95
|
+
- Move the internal log-index guard into a module, and generalise the walker guard subjects (ebf379f).
|
|
96
|
+
- Close the census's blind spot, make the freshness claim true, and correct ADR-0041 (c4febe8).
|
|
97
|
+
- Harden the inspection-surface probe, and record what the sync transform costs (217f738).
|
|
98
|
+
- Move the read-only inspection validator into a module (ffd9cf9).
|
|
99
|
+
- Describe what the walker census detects instead of claiming completeness (e7a2c3c).
|
|
100
|
+
- Make the WebSocket broadcast comparison deterministic (32ad5a7).
|
|
101
|
+
- Widen the walker census to patterns, and state what it cannot see (6d53b94).
|
|
102
|
+
- Reach the module-graph bundle from the shipping CLI path (a33bae3).
|
|
103
|
+
- Make the walker guard walker-coupled, and record the sixth walker (b5b5866).
|
|
104
|
+
- Collapse the two SQL walkers into one dialect-parameterized tokenizer (059b823).
|
|
105
|
+
- Measure the gate against the pre-work base, not the previous round (0de1d66).
|
|
106
|
+
- Refuse SQL the two line-comment rules read differently (80c14e4).
|
|
107
|
+
- Quote every identifier in emitted SQL through the dialect (d11981a).
|
|
108
|
+
- Derive the nesting test instead of describing it (b9fb455).
|
|
109
|
+
- Refuse SQL the walk and an engine lex differently (4506b18).
|
|
110
|
+
- Close the inspection query statement boundary (18e710f).
|
|
111
|
+
- Record the dollar-quote dialect divergence in the PRD (883834d).
|
|
112
|
+
- Describe a Postgres statement without breaking on its terminator (39497c5).
|
|
113
|
+
- Record the engine seam as ADR-0037 (788c97f).
|
|
114
|
+
- Sequence the Log index so its order is engine-independent (a17d353).
|
|
115
|
+
- Support local Capsule templates (bf3a503).
|
|
116
|
+
- Close issue 01 and fix the scope gap its reviews exposed (10938fe).
|
|
117
|
+
- Separate the write-only hazard from the deriving hazard (8186b85).
|
|
118
|
+
- Record Database adapter contract and conformance ADRs (7d3575d).
|
|
119
|
+
- Update documentation files in the working tree: docs/api/assets/navigation.js, docs/api/assets/search.js, docs/api/functions/client.createHooks.html, docs/api/functions/client.createInfernoAdapters.html, docs/api/functions/client.createLitControllers.html, docs/api/functions/client.createSolidPrimitives.html, docs/api/functions/client.createSvelteStores.html, docs/api/functions/client.createVueComposables.html, docs/api/functions/client.isAuthenticated.html, docs/api/functions/client.onMessage.html, docs/api/functions/client.sendMessage.html, docs/api/functions/server.Boolean.html, docs/api/functions/server.capsule.html, docs/api/functions/server.Date.html, docs/api/functions/server.endpoint.html, docs/api/functions/server.job.html, docs/api/functions/server.Json.html, docs/api/functions/server.message.html, docs/api/functions/server.mutation.html, docs/api/functions/server.Number.html, docs/api/functions/server.query.html, docs/api/functions/server.Reference.html, docs/api/functions/server.requireAuth.html, docs/api/functions/server.schedule.html, docs/api/functions/server.String.html, docs/api/functions/server.table.html, docs/api/modules/server.html, docs/api/types/client.AppMessage.html, docs/api/types/client.AppMessageStream.html, docs/api/types/client.AuthApi.html, docs/api/types/client.FileMetadata.html, docs/api/types/client.FileReference.html, docs/api/types/client.FilesApi.html, docs/api/types/client.HookPrimitives.html, docs/api/types/client.InfernoAdapterHost.html, docs/api/types/client.InfernoAuthAdapter.html, docs/api/types/client.InfernoMutationAdapter.html, docs/api/types/client.InfernoObservedAdapter.html, docs/api/types/client.InfernoQueryAdapter.html, docs/api/types/client.LitAuthController.html, docs/api/types/client.LitMutationController.html, docs/api/types/client.LitQueryController.html, docs/api/types/client.LitReactiveController.html, docs/api/types/client.LitReactiveControllerHost.html, docs/api/types/client.MutationsApi.html, docs/api/types/client.MutationState.html, docs/api/types/client.PreferencesApi.html, docs/api/types/client.PreferencesResult.html, docs/api/types/client.PublicFileUrl.html, docs/api/types/client.PublicUrlOptions.html, docs/api/types/client.QueriesApi.html, docs/api/types/client.QueryState.html, docs/api/types/client.SolidAccessor.html, docs/api/types/client.SolidAuth.html, docs/api/types/client.SolidMutation.html, docs/api/types/client.SolidMutationState.html, docs/api/types/client.SolidPrimitiveInputs.html, docs/api/types/client.SolidSignalSetter.html, docs/api/types/client.SporadesHooks.html, docs/api/types/client.SporadesInfernoAdapters.html, docs/api/types/client.SporadesLitControllers.html, docs/api/types/client.SporadesSolidPrimitives.html, docs/api/types/client.SporadesSvelteStores.html, docs/api/types/client.SporadesVueComposables.html, docs/api/types/client.Subscription.html, docs/api/types/client.SvelteAuthStore.html, docs/api/types/client.SvelteMutationStore.html, docs/api/types/client.SvelteReadable.html, docs/api/types/client.UploadCompleteEvent.html, docs/api/types/client.UploadOptions.html, docs/api/types/client.UploadProgressEvent.html, docs/api/types/client.UseAuthState.html, docs/api/types/client.VueComposablePrimitives.html, docs/api/types/client.VueMutationState.html, docs/api/types/server.Capsule.html, docs/api/types/server.CapsuleContext.html, docs/api/types/server.CapsuleDefinition.html, docs/api/types/server.CapsuleHooks.html, docs/api/types/server.ContextKind.html, docs/api/types/server.ContextMiddleware.html, docs/api/types/server.EndpointContext.html, docs/api/types/server.EndpointDefinition.html, docs/api/types/server.EndpointHandler.html, docs/api/types/server.EndpointOptions.html, docs/api/types/server.EndpointRequest.html, docs/api/types/server.JobApi.html, docs/api/types/server.JobDefinition.html, docs/api/types/server.JobState.html, docs/api/types/server.JobStatus.html, docs/api/types/server.JobSummary.html, docs/api/types/server.MessageApi.html, docs/api/types/server.MessageDefinition.html, docs/api/types/server.MessageHandler.html, docs/api/types/server.MessageScope.html, docs/api/types/server.MiddlewareContext.html, docs/api/types/server.MutationDefinition.html, docs/api/types/server.MutationHandler.html, docs/api/types/server.MutationHook.html, docs/api/types/server.MutationHookEvent.html, docs/api/types/server.MutationResult.html, docs/api/types/server.PasswordResetLink.html, docs/api/types/server.PasswordResetMailOptions.html, docs/api/types/server.PrivilegedApi.html, docs/api/types/server.PrivilegedAuthContext.html, docs/api/types/server.PrivilegedContext.html, docs/api/types/server.PrivilegedFileApi.html, docs/api/types/server.PrivilegedFileError.html, docs/api/types/server.PrivilegedFileMetadata.html, docs/api/types/server.PrivilegedOwnedFileMetadata.html, docs/api/types/server.PrivilegedPublicFileUrl.html, docs/api/types/server.PrivilegedResult.html, docs/api/types/server.PrivilegedRunOptions.html, docs/api/types/server.QueryDefinition.html, docs/api/types/server.QueryHandler.html, docs/api/types/server.ScheduleContext.html, docs/api/types/server.ScheduleDefinition.html, docs/api/types/server.ScheduleInspectionApi.html, docs/api/types/server.ScheduleLatestOccurrence.html, docs/api/types/server.ScheduleOccurrence.html, docs/api/types/server.SchedulePayloadFactory.html, docs/api/types/server.ScheduleSummary.html, docs/api/types/server.ServerAuthApi.html, docs/api/variables/client.auth.html, docs/api/variables/client.files.html, docs/api/variables/client.journey.html, docs/api/variables/client.mutations.html, docs/api/variables/client.preferences.html, docs/api/variables/client.queries.html.
|
|
120
|
+
|
|
121
|
+
### 🧪 Tests
|
|
122
|
+
|
|
123
|
+
- Delete the emitted function list and close the census hole it was hiding (67cc386).
|
|
124
|
+
- Delete the emitted-list builder, its skew probes and the free-binding guard (4f0cd77).
|
|
125
|
+
- Make the module-graph bundle the only server bundle a build produces (c5484ee).
|
|
126
|
+
- Prove batch 9's guards by sabotage, and sharpen two probe fixtures that could not see one (d76a670).
|
|
127
|
+
- Move the Database adapters and dialect into a module (1c3b80b).
|
|
128
|
+
- Send the auth storage bootstrap home, and give the Log index's storage a module (38784d2).
|
|
129
|
+
- Bring the writing half of the stored-value codec beside the reading half (d733a38).
|
|
130
|
+
- Move the HTTP and security policy domain into a module (bcbe1ca).
|
|
131
|
+
- Move the ACL and privileged-audit domain into acl-runtime.ts (b044841).
|
|
132
|
+
- Extract the two non-domain blockers the ACL domain's graph left outside it (8a8fa7d).
|
|
133
|
+
- Extend the carried-private-helper guard to the storage domain's subjects (c737b18).
|
|
134
|
+
- Compare the storage domain between the two bundles, and cover it in the census (e7fcb1a).
|
|
135
|
+
- Compare the user-preferences domain between the two bundles, and cover it in the census (d395d1b).
|
|
136
|
+
- Move the user-preferences domain into a module, and finish the auth region with it (3e118db).
|
|
137
|
+
- Resolve the two Job storage bootstraps by import rather than through the emitted list (e656405).
|
|
138
|
+
- Build the server bundle from a module graph (efba985).
|
|
139
|
+
- Run the keyword scan under both line-comment rules (833d1b1).
|
|
140
|
+
- Spell a dollar-quote tag with the alphabet the guard already counts (0d9b088).
|
|
141
|
+
- Teach the SQL skipper Postgres's dollar quoting and E-strings (76b58f0).
|
|
142
|
+
- Make the emitted bundle define every identifier it references (04c7ad3).
|
|
143
|
+
- Guard the Log index additive migration from a pre-change table (39a70e3).
|
|
144
|
+
- Name row and value normalization as the seam's third part (512cfe2).
|
|
145
|
+
- Take the add-missing-column strategy from the dialect (75316aa).
|
|
146
|
+
- Derive the rollback case's before-state instead of fixing it (db5d23b).
|
|
147
|
+
- Route shared schema migration through the adapter's transaction (a8c5b9c).
|
|
148
|
+
- Close the Postgres runtime column-name gap with a derived check (2de0d07).
|
|
149
|
+
- Rename database.sqlite to database.adapter throughout the runtime (bb48f94).
|
|
150
|
+
- Tie coverage credit to per-engine execution, and seed the tables the DDL cases missed (8c33c42).
|
|
151
|
+
- Require a conformance case for every Database adapter method (f39c8c1).
|
|
152
|
+
- Extend conformance coverage to app tables and runtime metadata (d35de97).
|
|
153
|
+
- Extend conformance coverage to auth storage (a6ff912).
|
|
154
|
+
- Extend conformance coverage to File metadata storage (0cb2421).
|
|
155
|
+
- Open a conflict-free conformance extension seam (7815529).
|
|
156
|
+
- Run one conformance specification against every Database adapter (5f41be2).
|
|
157
|
+
- Resolve the reset-code cap against the stored row, not the pending query (80a6503).
|
|
158
|
+
|
|
159
|
+
### 📦 Packaging
|
|
160
|
+
|
|
161
|
+
- Make a browser global in a runtime module a compile error, not a shipped one (d9e7dec).
|
package/README.md
CHANGED
|
@@ -57,6 +57,10 @@ sporades host push --restart
|
|
|
57
57
|
|
|
58
58
|
- [User guide](https://mgscox.github.io/sporades/user-guide): build, run, inspect, deploy, auth,
|
|
59
59
|
preferences, files, endpoints, messages, and common workflows.
|
|
60
|
+
- [Feature reference](https://mgscox.github.io/sporades/guide/reference): exhaustive contracts and
|
|
61
|
+
command lookup, split into focused topic pages.
|
|
62
|
+
- [LLM documentation manifest](https://mgscox.github.io/sporades/llms.txt): release-matched Markdown
|
|
63
|
+
sources for agents and other documentation tools.
|
|
60
64
|
- [Architecture](https://mgscox.github.io/sporades/architecture): platform model, runtime modes, Host
|
|
61
65
|
server design, and ownership boundaries.
|
|
62
66
|
- [Runtime layout](https://mgscox.github.io/sporades/runtime-layout): generated files, mounts, Host
|
|
@@ -210,6 +214,15 @@ sporades create notes --template todo
|
|
|
210
214
|
cd notes
|
|
211
215
|
```
|
|
212
216
|
|
|
217
|
+
Use a reusable local Capsule template by passing its directory path. Sporades
|
|
218
|
+
copies the template while honouring its `.gitignore`, excludes `.git`,
|
|
219
|
+
`node_modules`, `.sporades`, and `.env.sporades.server`, rewrites the project
|
|
220
|
+
name, and merges the current Sporades dependency and standard scripts:
|
|
221
|
+
|
|
222
|
+
```sh
|
|
223
|
+
sporades create notes --template /absolute/path/to/capsule-template
|
|
224
|
+
```
|
|
225
|
+
|
|
213
226
|
Run a local Dev session:
|
|
214
227
|
|
|
215
228
|
```sh
|
|
@@ -246,8 +259,9 @@ sporades host push --host personal --subname notes --verify --json
|
|
|
246
259
|
|
|
247
260
|
Sporades is early, active platform work. It is useful for fast prototypes,
|
|
248
261
|
agent-driven app loops, local production-like testing, and private hosted
|
|
249
|
-
Capsules, but it is not trying to be a full production platform (yet). Check the
|
|
250
|
-
[Roadmap](
|
|
262
|
+
Capsules, but it is not trying to be a full production platform (yet). Check the
|
|
263
|
+
[Roadmap](https://mgscox.github.io/sporades/ROADMAP) for in-flight and planned
|
|
264
|
+
features.
|
|
251
265
|
|
|
252
266
|
The current focus is keeping the authoring surface small, the runtime
|
|
253
267
|
inspectable, and the operational path friendly to both developers and agents.
|
|
@@ -161,15 +161,31 @@ function validatePublicTreeFileSet(files) {
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
// src/server-runtime-source.ts
|
|
164
|
-
import { createHash,
|
|
164
|
+
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
165
|
+
|
|
166
|
+
// src/file-storage-runtime.ts
|
|
167
|
+
var nodeCryptoModule = process.getBuiltinModule("node:crypto");
|
|
168
|
+
|
|
169
|
+
// src/auth-runtime.ts
|
|
170
|
+
var nodeCryptoModule2 = process.getBuiltinModule("node:crypto");
|
|
165
171
|
var EMAIL_SIGN_IN_THROTTLE_WINDOW_MS = 15 * 60 * 1e3;
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
+
var PASSWORD_RESET_DEFAULT_TTL_MS = 60 * 60 * 1e3;
|
|
173
|
+
var PASSWORD_RESET_MIN_TTL_MS = 5 * 60 * 1e3;
|
|
174
|
+
var PASSWORD_RESET_MAX_TTL_MS = 24 * 60 * 60 * 1e3;
|
|
175
|
+
|
|
176
|
+
// src/runtime-log-policy.ts
|
|
177
|
+
function isSensitiveLogKey(key) {
|
|
178
|
+
return /(^|[-_])(?:password|passwd|token|secret|authorization|cookie|client[-_]?secret|api[-_]?token|private[-_]?key|authorized[-_]?keys?|request[-_]?body|raw[-_]?body|stack(?:trace)?)([-_]|$)/i.test(String(key)) || /(?:password|passwd|token|secret|authorization|cookie|clientSecret|apiToken|privateKey|authorizedKeys|requestBody|rawRequestBody|stackTrace)/i.test(String(key));
|
|
172
179
|
}
|
|
180
|
+
|
|
181
|
+
// src/database-runtime.ts
|
|
182
|
+
var nodeCryptoModule3 = process.getBuiltinModule("node:crypto");
|
|
183
|
+
var nodeFsModule = process.getBuiltinModule("node:fs");
|
|
184
|
+
|
|
185
|
+
// src/jobs-runtime.ts
|
|
186
|
+
var nodeCryptoModule4 = process.getBuiltinModule("node:crypto");
|
|
187
|
+
|
|
188
|
+
// src/acl-runtime.ts
|
|
173
189
|
var PRIVILEGED_AUDIT_SCHEMA = "sporades.privileged-audit.v1";
|
|
174
190
|
var PRIVILEGED_AUDIT_ACTOR_KINDS = /* @__PURE__ */ new Set(["privileged-server-role", "captured-user", "platform", "unknown"]);
|
|
175
191
|
var PRIVILEGED_AUDIT_OUTCOMES = /* @__PURE__ */ new Set(["started", "completed", "errored", "finished"]);
|
|
@@ -240,6 +256,16 @@ function auditString(value, fallback) {
|
|
|
240
256
|
const text = value === null || value === void 0 ? "" : String(value);
|
|
241
257
|
return text.trim() ? text : fallback;
|
|
242
258
|
}
|
|
259
|
+
var ACL_HELPER_STATE = Symbol("sporades.aclHelperState");
|
|
260
|
+
|
|
261
|
+
// src/server-runtime-source.ts
|
|
262
|
+
function logPayloadMaxBytes(config = {}) {
|
|
263
|
+
const configured = Number(config.logs?.payloadMaxBytes ?? config.logging?.payloadMaxBytes);
|
|
264
|
+
return Number.isInteger(configured) && configured > 0 ? configured : 4096;
|
|
265
|
+
}
|
|
266
|
+
function logRedactedValue() {
|
|
267
|
+
return "[REDACTED]";
|
|
268
|
+
}
|
|
243
269
|
function createLogEnvelope(input) {
|
|
244
270
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
245
271
|
const config = input.config ?? {};
|
|
@@ -309,9 +335,6 @@ function logDataContainsServerEnvValue(value, serverEnv) {
|
|
|
309
335
|
);
|
|
310
336
|
return values.some((secret) => serialized.includes(String(secret)));
|
|
311
337
|
}
|
|
312
|
-
function isSensitiveLogKey(key) {
|
|
313
|
-
return /(^|[-_])(?:password|passwd|token|secret|authorization|cookie|client[-_]?secret|api[-_]?token|private[-_]?key|authorized[-_]?keys?|request[-_]?body|raw[-_]?body|stack(?:trace)?)([-_]|$)/i.test(String(key)) || /(?:password|passwd|token|secret|authorization|cookie|clientSecret|apiToken|privateKey|authorizedKeys|requestBody|rawRequestBody|stackTrace)/i.test(String(key));
|
|
314
|
-
}
|
|
315
338
|
function isSensitiveLogString(value) {
|
|
316
339
|
return /-----BEGIN [A-Z ]*PRIVATE KEY-----/.test(value) || /\b(?:ssh-rsa|ssh-ed25519|ecdsa-sha2-[^\s]+)\s+[A-Za-z0-9+/=]{32,}/.test(value) || /(^|\n)\s*at\s+.+:\d+:\d+/.test(value);
|
|
317
340
|
}
|
|
@@ -348,7 +371,6 @@ function capLogEnvelope(envelope, maxBytes) {
|
|
|
348
371
|
capped.message = capped.message.slice(0, 256);
|
|
349
372
|
return capped;
|
|
350
373
|
}
|
|
351
|
-
var ACL_HELPER_STATE = Symbol("sporades.aclHelperState");
|
|
352
374
|
|
|
353
375
|
// src/cli/cli-support.ts
|
|
354
376
|
function errorDetails(error) {
|
|
@@ -391,7 +413,7 @@ function writeEnvelope(result, failed = false) {
|
|
|
391
413
|
}
|
|
392
414
|
|
|
393
415
|
// src/cli/cli-version.ts
|
|
394
|
-
var CLI_VERSION = "0.
|
|
416
|
+
var CLI_VERSION = "0.7.0";
|
|
395
417
|
|
|
396
418
|
// src/cli/schedule-inspection-envelope.ts
|
|
397
419
|
function sanitizeScheduleInspectionEnvelope(envelope, invalid) {
|