You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.7 KiB

Build runtime infrastructure layer: aapp + 5 new artifacts Adds the application composition root and six new runtime artifacts. lang and logr alone could not cover an app surface — locale propagation, format helpers, frontend preferences, validation, persistence and DOM service all needed independent artifacts that aapp wires together under a single locale source of truth and a shared logger. New artifacts: - aapp: composition root. createActiveApp + createTestApp + App.createSiumEngine + frontend.persist + Storage wiring. - stor: pluggable adapters (local/session/memory/cookie + SSR via cookieAdapter.fromCookies), envelope versioning + migrate + TTL, validate via Standard Schema, intra-tab + cross-tab sync, Storage.clear(), per-entry adapter/namespace overrides. - adom: reactive DOM service. shareViewport opt-in + per-window tracker, dispose(). breakpoints, viewport, attribute writes. - fend: frontend preferences (theme, mode, dir, density, reducedMotion, reducedSound) with auto/clear/isAuto pattern. - fmts: localized formatting (numbers, currency, units, dates) with shared LocaleSource and per-domain auto/clear pattern. - sium: validation engine. Standard Schema interop, Lang/Logger injection, codec/refine/transform, domain types (color/date/time), introspection. Existing artifacts extended: - lang: BCP 47 SupportedLocale (LangBase | base-region), mono lang for monolingual apps, extend() leaf-overwrite warning, EngineLang/ActiveLang naming alignment with the rest of the project (no Instance suffix). - logr: EngineLogger.dispose(), failureThrottleMs anti-cascade for transports, README sync to the per-level filter API (minLevel removed). Cross-cutting: - $locale: shared LocaleSource type consumed by fmts and fend. - arts/README.md: artifact map, dependency graph, naming conventions. - Test pages for every artifact under /test/<artifact>. 733 tests passing; svelte-check clean except 2 pre-existing errors on sium/svelte provider (port pending). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 months ago
export { createActiveApp } from './active-app.svelte';
Big-bang: remove legacy translators, App.createActiveX(), APP_EVENT_*, autoInvalidate* Completes step 3 of the active-app refactor. The orca-based service schema model is now the single supported path; the legacy auto-reactive ecosystem is gone. Removed: - arts/active-app/integrations/session-translator.ts and auth-cache.ts (their purpose is replaced by orca presets in arts/active-app/presets/). - arts/connection/bus-session-source.ts (canonical session events flow through SESSION_EVENT_* directly). - libs/active-app/ entirely. Its contents (consts, errors, events reduced to APP_EVENT_DISPOSE_STARTING) consolidated into arts/active-app/{consts,errors,events}.ts. The libs layer no longer has anything app-specific. - From arts/cache: - bus / autoInvalidateOn options on ActiveCacheOptions. - wireAutoInvalidation internal subscription. - CACHE_AUTO_INVALIDATE_* constants and types. - From arts/perm: - bus / autoInvalidateOn options on ActivePermsOptions. - wireAutoInvalidation internal subscription. - PERM_AUTO_INVALIDATE_* constants and types. - From arts/connection: - bus option in EngineConnectionsOptions. - shouldWireBusSessionSource helper. - The "reacts to canonical app identity bus events" test that depended on the deleted bus-session-source. - From arts/active-app/active-app.svelte.ts: - createSiumEngine() / createActiveSession() / createActiveConnections() / createActivePerms() / createActiveAuth() factory methods. - App.Sess / App.Perms / App.Auth getters and the singleton guards (Sess !== undefined etc.). - APP_ORCHESTRATION_* preset system, resolveActiveAppOrchestration, STANDARD_ORCHESTRATION_TRANSLATORS, all five translator handles. - APP_ERROR_ALREADY_CREATED_* / APP_ERROR_CREATE_PERM_ENDPOINT_REQUIRED constants (orphan after factory removal). - From arts/active-app/test: - ecosystem.integration.test.ts (9 monolithic tests, ~1900 lines). - session-translator.test.ts. - create-sium-engine.test.ts. - From libs/active-app/test: - events.test.ts (covered the deleted publishers and the legacy APP_USER_IDENTITY_* causes). - APP_EVENT_USER_IDENTITY_CHANGED, APP_EVENT_TENANT_SWITCHED, APP_EVENT_PERMISSIONS_REFRESH_REQUESTED, APP_EVENT_CACHE_INVALIDATE_REQUESTED, APP_EVENT_CONNECTIVITY_CHANGED (only DISPOSE_STARTING survives). - Their associated payload interfaces and the APP_USER_IDENTITY_CAUSE_* constants. - publishAppUserIdentityChanged / publishAppPermsRefreshRequested / publishAppCacheInvalidateRequested / publishAppTenantSwitched / publishAppConnectivityChanged. publishAppDisposeStarting and the new onAppDisposeStarting helper remain. Final shape of arts/active-app/: - active-app.svelte.ts: builds Logger, Lang, Format, Frontend, Dom, Storage, Http, Timers, Bus, Orca, Cache, then the schema services via buildServiceBuilders. dispose() publishes DISPOSE_STARTING and tears everything down in reverse construction order. - services.ts, service-builder.ts, service-factories/, presets/, bus-context.svelte.ts, consts.ts, errors.ts, events.ts, types.ts, index.ts (public barrel exposing every define*, applyStandardOrca, types and errors). Suite: 1374 tests pass. The reduction from the prior 1408 reflects the deleted legacy tests; coverage of the new model is comprehensive (schema-declarative.test.ts, service-builder.test.ts, service-factories.test.ts, presets.test.ts, active-app.test.ts core, plus the existing per-art suites). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
export { APP_MODULE } from './consts';
export {
Big-bang: remove legacy translators, App.createActiveX(), APP_EVENT_*, autoInvalidate* Completes step 3 of the active-app refactor. The orca-based service schema model is now the single supported path; the legacy auto-reactive ecosystem is gone. Removed: - arts/active-app/integrations/session-translator.ts and auth-cache.ts (their purpose is replaced by orca presets in arts/active-app/presets/). - arts/connection/bus-session-source.ts (canonical session events flow through SESSION_EVENT_* directly). - libs/active-app/ entirely. Its contents (consts, errors, events reduced to APP_EVENT_DISPOSE_STARTING) consolidated into arts/active-app/{consts,errors,events}.ts. The libs layer no longer has anything app-specific. - From arts/cache: - bus / autoInvalidateOn options on ActiveCacheOptions. - wireAutoInvalidation internal subscription. - CACHE_AUTO_INVALIDATE_* constants and types. - From arts/perm: - bus / autoInvalidateOn options on ActivePermsOptions. - wireAutoInvalidation internal subscription. - PERM_AUTO_INVALIDATE_* constants and types. - From arts/connection: - bus option in EngineConnectionsOptions. - shouldWireBusSessionSource helper. - The "reacts to canonical app identity bus events" test that depended on the deleted bus-session-source. - From arts/active-app/active-app.svelte.ts: - createSiumEngine() / createActiveSession() / createActiveConnections() / createActivePerms() / createActiveAuth() factory methods. - App.Sess / App.Perms / App.Auth getters and the singleton guards (Sess !== undefined etc.). - APP_ORCHESTRATION_* preset system, resolveActiveAppOrchestration, STANDARD_ORCHESTRATION_TRANSLATORS, all five translator handles. - APP_ERROR_ALREADY_CREATED_* / APP_ERROR_CREATE_PERM_ENDPOINT_REQUIRED constants (orphan after factory removal). - From arts/active-app/test: - ecosystem.integration.test.ts (9 monolithic tests, ~1900 lines). - session-translator.test.ts. - create-sium-engine.test.ts. - From libs/active-app/test: - events.test.ts (covered the deleted publishers and the legacy APP_USER_IDENTITY_* causes). - APP_EVENT_USER_IDENTITY_CHANGED, APP_EVENT_TENANT_SWITCHED, APP_EVENT_PERMISSIONS_REFRESH_REQUESTED, APP_EVENT_CACHE_INVALIDATE_REQUESTED, APP_EVENT_CONNECTIVITY_CHANGED (only DISPOSE_STARTING survives). - Their associated payload interfaces and the APP_USER_IDENTITY_CAUSE_* constants. - publishAppUserIdentityChanged / publishAppPermsRefreshRequested / publishAppCacheInvalidateRequested / publishAppTenantSwitched / publishAppConnectivityChanged. publishAppDisposeStarting and the new onAppDisposeStarting helper remain. Final shape of arts/active-app/: - active-app.svelte.ts: builds Logger, Lang, Format, Frontend, Dom, Storage, Http, Timers, Bus, Orca, Cache, then the schema services via buildServiceBuilders. dispose() publishes DISPOSE_STARTING and tears everything down in reverse construction order. - services.ts, service-builder.ts, service-factories/, presets/, bus-context.svelte.ts, consts.ts, errors.ts, events.ts, types.ts, index.ts (public barrel exposing every define*, applyStandardOrca, types and errors). Suite: 1374 tests pass. The reduction from the prior 1408 reflects the deleted legacy tests; coverage of the new model is comprehensive (schema-declarative.test.ts, service-builder.test.ts, service-factories.test.ts, presets.test.ts, active-app.test.ts core, plus the existing per-art suites). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
AappAlreadyCreatedError,
AappServiceConstructionFailedError,
AappServiceDependencyCycleError,
AappServiceNameMismatchError,
isAappAlreadyCreatedError,
isAappServiceConstructionFailedError,
isAappServiceDependencyCycleError,
isAappServiceNameMismatchError
} from './errors';
Build runtime infrastructure layer: aapp + 5 new artifacts Adds the application composition root and six new runtime artifacts. lang and logr alone could not cover an app surface — locale propagation, format helpers, frontend preferences, validation, persistence and DOM service all needed independent artifacts that aapp wires together under a single locale source of truth and a shared logger. New artifacts: - aapp: composition root. createActiveApp + createTestApp + App.createSiumEngine + frontend.persist + Storage wiring. - stor: pluggable adapters (local/session/memory/cookie + SSR via cookieAdapter.fromCookies), envelope versioning + migrate + TTL, validate via Standard Schema, intra-tab + cross-tab sync, Storage.clear(), per-entry adapter/namespace overrides. - adom: reactive DOM service. shareViewport opt-in + per-window tracker, dispose(). breakpoints, viewport, attribute writes. - fend: frontend preferences (theme, mode, dir, density, reducedMotion, reducedSound) with auto/clear/isAuto pattern. - fmts: localized formatting (numbers, currency, units, dates) with shared LocaleSource and per-domain auto/clear pattern. - sium: validation engine. Standard Schema interop, Lang/Logger injection, codec/refine/transform, domain types (color/date/time), introspection. Existing artifacts extended: - lang: BCP 47 SupportedLocale (LangBase | base-region), mono lang for monolingual apps, extend() leaf-overwrite warning, EngineLang/ActiveLang naming alignment with the rest of the project (no Instance suffix). - logr: EngineLogger.dispose(), failureThrottleMs anti-cascade for transports, README sync to the per-level filter API (minLevel removed). Cross-cutting: - $locale: shared LocaleSource type consumed by fmts and fend. - arts/README.md: artifact map, dependency graph, naming conventions. - Test pages for every artifact under /test/<artifact>. 733 tests passing; svelte-check clean except 2 pre-existing errors on sium/svelte provider (port pending). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 months ago
export type {
ActiveApp,
ActiveAppBusEvents,
Big-bang: remove legacy translators, App.createActiveX(), APP_EVENT_*, autoInvalidate* Completes step 3 of the active-app refactor. The orca-based service schema model is now the single supported path; the legacy auto-reactive ecosystem is gone. Removed: - arts/active-app/integrations/session-translator.ts and auth-cache.ts (their purpose is replaced by orca presets in arts/active-app/presets/). - arts/connection/bus-session-source.ts (canonical session events flow through SESSION_EVENT_* directly). - libs/active-app/ entirely. Its contents (consts, errors, events reduced to APP_EVENT_DISPOSE_STARTING) consolidated into arts/active-app/{consts,errors,events}.ts. The libs layer no longer has anything app-specific. - From arts/cache: - bus / autoInvalidateOn options on ActiveCacheOptions. - wireAutoInvalidation internal subscription. - CACHE_AUTO_INVALIDATE_* constants and types. - From arts/perm: - bus / autoInvalidateOn options on ActivePermsOptions. - wireAutoInvalidation internal subscription. - PERM_AUTO_INVALIDATE_* constants and types. - From arts/connection: - bus option in EngineConnectionsOptions. - shouldWireBusSessionSource helper. - The "reacts to canonical app identity bus events" test that depended on the deleted bus-session-source. - From arts/active-app/active-app.svelte.ts: - createSiumEngine() / createActiveSession() / createActiveConnections() / createActivePerms() / createActiveAuth() factory methods. - App.Sess / App.Perms / App.Auth getters and the singleton guards (Sess !== undefined etc.). - APP_ORCHESTRATION_* preset system, resolveActiveAppOrchestration, STANDARD_ORCHESTRATION_TRANSLATORS, all five translator handles. - APP_ERROR_ALREADY_CREATED_* / APP_ERROR_CREATE_PERM_ENDPOINT_REQUIRED constants (orphan after factory removal). - From arts/active-app/test: - ecosystem.integration.test.ts (9 monolithic tests, ~1900 lines). - session-translator.test.ts. - create-sium-engine.test.ts. - From libs/active-app/test: - events.test.ts (covered the deleted publishers and the legacy APP_USER_IDENTITY_* causes). - APP_EVENT_USER_IDENTITY_CHANGED, APP_EVENT_TENANT_SWITCHED, APP_EVENT_PERMISSIONS_REFRESH_REQUESTED, APP_EVENT_CACHE_INVALIDATE_REQUESTED, APP_EVENT_CONNECTIVITY_CHANGED (only DISPOSE_STARTING survives). - Their associated payload interfaces and the APP_USER_IDENTITY_CAUSE_* constants. - publishAppUserIdentityChanged / publishAppPermsRefreshRequested / publishAppCacheInvalidateRequested / publishAppTenantSwitched / publishAppConnectivityChanged. publishAppDisposeStarting and the new onAppDisposeStarting helper remain. Final shape of arts/active-app/: - active-app.svelte.ts: builds Logger, Lang, Format, Frontend, Dom, Storage, Http, Timers, Bus, Orca, Cache, then the schema services via buildServiceBuilders. dispose() publishes DISPOSE_STARTING and tears everything down in reverse construction order. - services.ts, service-builder.ts, service-factories/, presets/, bus-context.svelte.ts, consts.ts, errors.ts, events.ts, types.ts, index.ts (public barrel exposing every define*, applyStandardOrca, types and errors). Suite: 1374 tests pass. The reduction from the prior 1408 reflects the deleted legacy tests; coverage of the new model is comprehensive (schema-declarative.test.ts, service-builder.test.ts, service-factories.test.ts, presets.test.ts, active-app.test.ts core, plus the existing per-art suites). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
ActiveAppLegacy,
Build runtime infrastructure layer: aapp + 5 new artifacts Adds the application composition root and six new runtime artifacts. lang and logr alone could not cover an app surface — locale propagation, format helpers, frontend preferences, validation, persistence and DOM service all needed independent artifacts that aapp wires together under a single locale source of truth and a shared logger. New artifacts: - aapp: composition root. createActiveApp + createTestApp + App.createSiumEngine + frontend.persist + Storage wiring. - stor: pluggable adapters (local/session/memory/cookie + SSR via cookieAdapter.fromCookies), envelope versioning + migrate + TTL, validate via Standard Schema, intra-tab + cross-tab sync, Storage.clear(), per-entry adapter/namespace overrides. - adom: reactive DOM service. shareViewport opt-in + per-window tracker, dispose(). breakpoints, viewport, attribute writes. - fend: frontend preferences (theme, mode, dir, density, reducedMotion, reducedSound) with auto/clear/isAuto pattern. - fmts: localized formatting (numbers, currency, units, dates) with shared LocaleSource and per-domain auto/clear pattern. - sium: validation engine. Standard Schema interop, Lang/Logger injection, codec/refine/transform, domain types (color/date/time), introspection. Existing artifacts extended: - lang: BCP 47 SupportedLocale (LangBase | base-region), mono lang for monolingual apps, extend() leaf-overwrite warning, EngineLang/ActiveLang naming alignment with the rest of the project (no Instance suffix). - logr: EngineLogger.dispose(), failureThrottleMs anti-cascade for transports, README sync to the per-level filter API (minLevel removed). Cross-cutting: - $locale: shared LocaleSource type consumed by fmts and fend. - arts/README.md: artifact map, dependency graph, naming conventions. - Test pages for every artifact under /test/<artifact>. 733 tests passing; svelte-check clean except 2 pre-existing errors on sium/svelte provider (port pending). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 months ago
ActiveAppOptions,
Big-bang: remove legacy translators, App.createActiveX(), APP_EVENT_*, autoInvalidate* Completes step 3 of the active-app refactor. The orca-based service schema model is now the single supported path; the legacy auto-reactive ecosystem is gone. Removed: - arts/active-app/integrations/session-translator.ts and auth-cache.ts (their purpose is replaced by orca presets in arts/active-app/presets/). - arts/connection/bus-session-source.ts (canonical session events flow through SESSION_EVENT_* directly). - libs/active-app/ entirely. Its contents (consts, errors, events reduced to APP_EVENT_DISPOSE_STARTING) consolidated into arts/active-app/{consts,errors,events}.ts. The libs layer no longer has anything app-specific. - From arts/cache: - bus / autoInvalidateOn options on ActiveCacheOptions. - wireAutoInvalidation internal subscription. - CACHE_AUTO_INVALIDATE_* constants and types. - From arts/perm: - bus / autoInvalidateOn options on ActivePermsOptions. - wireAutoInvalidation internal subscription. - PERM_AUTO_INVALIDATE_* constants and types. - From arts/connection: - bus option in EngineConnectionsOptions. - shouldWireBusSessionSource helper. - The "reacts to canonical app identity bus events" test that depended on the deleted bus-session-source. - From arts/active-app/active-app.svelte.ts: - createSiumEngine() / createActiveSession() / createActiveConnections() / createActivePerms() / createActiveAuth() factory methods. - App.Sess / App.Perms / App.Auth getters and the singleton guards (Sess !== undefined etc.). - APP_ORCHESTRATION_* preset system, resolveActiveAppOrchestration, STANDARD_ORCHESTRATION_TRANSLATORS, all five translator handles. - APP_ERROR_ALREADY_CREATED_* / APP_ERROR_CREATE_PERM_ENDPOINT_REQUIRED constants (orphan after factory removal). - From arts/active-app/test: - ecosystem.integration.test.ts (9 monolithic tests, ~1900 lines). - session-translator.test.ts. - create-sium-engine.test.ts. - From libs/active-app/test: - events.test.ts (covered the deleted publishers and the legacy APP_USER_IDENTITY_* causes). - APP_EVENT_USER_IDENTITY_CHANGED, APP_EVENT_TENANT_SWITCHED, APP_EVENT_PERMISSIONS_REFRESH_REQUESTED, APP_EVENT_CACHE_INVALIDATE_REQUESTED, APP_EVENT_CONNECTIVITY_CHANGED (only DISPOSE_STARTING survives). - Their associated payload interfaces and the APP_USER_IDENTITY_CAUSE_* constants. - publishAppUserIdentityChanged / publishAppPermsRefreshRequested / publishAppCacheInvalidateRequested / publishAppTenantSwitched / publishAppConnectivityChanged. publishAppDisposeStarting and the new onAppDisposeStarting helper remain. Final shape of arts/active-app/: - active-app.svelte.ts: builds Logger, Lang, Format, Frontend, Dom, Storage, Http, Timers, Bus, Orca, Cache, then the schema services via buildServiceBuilders. dispose() publishes DISPOSE_STARTING and tears everything down in reverse construction order. - services.ts, service-builder.ts, service-factories/, presets/, bus-context.svelte.ts, consts.ts, errors.ts, events.ts, types.ts, index.ts (public barrel exposing every define*, applyStandardOrca, types and errors). Suite: 1374 tests pass. The reduction from the prior 1408 reflects the deleted legacy tests; coverage of the new model is comprehensive (schema-declarative.test.ts, service-builder.test.ts, service-factories.test.ts, presets.test.ts, active-app.test.ts core, plus the existing per-art suites). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
ActiveAppServicesIntrospection,
Build runtime infrastructure layer: aapp + 5 new artifacts Adds the application composition root and six new runtime artifacts. lang and logr alone could not cover an app surface — locale propagation, format helpers, frontend preferences, validation, persistence and DOM service all needed independent artifacts that aapp wires together under a single locale source of truth and a shared logger. New artifacts: - aapp: composition root. createActiveApp + createTestApp + App.createSiumEngine + frontend.persist + Storage wiring. - stor: pluggable adapters (local/session/memory/cookie + SSR via cookieAdapter.fromCookies), envelope versioning + migrate + TTL, validate via Standard Schema, intra-tab + cross-tab sync, Storage.clear(), per-entry adapter/namespace overrides. - adom: reactive DOM service. shareViewport opt-in + per-window tracker, dispose(). breakpoints, viewport, attribute writes. - fend: frontend preferences (theme, mode, dir, density, reducedMotion, reducedSound) with auto/clear/isAuto pattern. - fmts: localized formatting (numbers, currency, units, dates) with shared LocaleSource and per-domain auto/clear pattern. - sium: validation engine. Standard Schema interop, Lang/Logger injection, codec/refine/transform, domain types (color/date/time), introspection. Existing artifacts extended: - lang: BCP 47 SupportedLocale (LangBase | base-region), mono lang for monolingual apps, extend() leaf-overwrite warning, EngineLang/ActiveLang naming alignment with the rest of the project (no Instance suffix). - logr: EngineLogger.dispose(), failureThrottleMs anti-cascade for transports, README sync to the per-level filter API (minLevel removed). Cross-cutting: - $locale: shared LocaleSource type consumed by fmts and fend. - arts/README.md: artifact map, dependency graph, naming conventions. - Test pages for every artifact under /test/<artifact>. 733 tests passing; svelte-check clean except 2 pre-existing errors on sium/svelte provider (port pending). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 months ago
ActiveAppStorageOptions,
FrontendPersist,
FrontendPersistKey,
FrontendPersistKeyOverride
} from './types';
Add arts/timr, arts/sess, arts/http; sess actor extension; aapp factory New artifacts: arts/timr — runtime timer scheduler (singleton-per-App, never global). Engine + Active split. Race-safe via (id, key, version) guard against stale native callbacks, async tasks resolving after cancel/replace, interval ticks scheduled after dispose, and ack-style timeouts. Per- entry AbortController; intervals reuse the signal across ticks. awaitTask:true (default, no overlap) vs awaitTask:false (fire-and- forget cadence; failures don't stop the interval — semantic frozen). Recursive setTimeout for intervals. scheduleAt(past) → delay 0 (no error). Fake-clock injectable for deterministic tests. Pure computeBackoffDelay helper. 50 server tests + 7 browser tests + full README + DESIGN_TIMR + interactive test page at /test/timr. arts/sess — session lifecycle with three generics (TUser/TCredential/TData) plus optional SessionActor metadata (kind/source/confidence — orthogonal axis to identity). Tagged AdoptResult/RefreshResult/RevokeResult; never void. Generation guard against stale refresh from local cancel, cross-tab storage events, or re-adopt. onRefresh contract (null=fatal, throw=transient). onRevoke replaces revokeUrl (consumer controls fetch; engine just gets boolean). Default scope: 'global' when onRevoke configured. INITIAL_SESSION sync dispatch on subscribe. BroadcastChannel payload: {type, event, generation} only — never tokens. SSR cookie reader validates invariants. withAutoRefresh helper, 401-retry hook with applyAuth + loop guard, JWT exp helper. 103 tests (60 server + 5 browser + 38 actor/error/etc) + README + DESIGN.md + test page at /test/sess. arts/http — HTTP client with Standard Schema body validation, retry + Retry-After, attempt + total timeout via AbortSignal composition, hooks (beforeRequest/beforeRetry/afterResponse/beforeError), tagged HttpResult. Test page at /test/http. arts/conn — DESIGN_CONN.md only (no implementation yet). aapp: - App.createActiveSession<TUser, TCredential, TData>(opts) factory auto-injects App.Logger; throws SessAlreadyCreatedError on second call. App.Sess getter exposes the active session (undefined until first call). Auto-disposed by App.dispose(). - App.Timers integration deferred to timr Fase 3. libs/days: - toEpochMs(value) — permissive coercion (number | Date | string) → epoch ms. Exposed alongside the existing day/calendar helpers. Other: - sium examples moved to _examples/ (excluded from public surface). - sium-provider.svelte test removed (port pending; tracked elsewhere). - libs/env.ts — DEV flag single source of truth. - Various README touch-ups across artifacts. All artifacts: 1021 server tests + 12 browser tests; svelte-check + ESLint clean. The 9 server "errors" are pre-existing jsdom missing — unrelated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
Big-bang: remove legacy translators, App.createActiveX(), APP_EVENT_*, autoInvalidate* Completes step 3 of the active-app refactor. The orca-based service schema model is now the single supported path; the legacy auto-reactive ecosystem is gone. Removed: - arts/active-app/integrations/session-translator.ts and auth-cache.ts (their purpose is replaced by orca presets in arts/active-app/presets/). - arts/connection/bus-session-source.ts (canonical session events flow through SESSION_EVENT_* directly). - libs/active-app/ entirely. Its contents (consts, errors, events reduced to APP_EVENT_DISPOSE_STARTING) consolidated into arts/active-app/{consts,errors,events}.ts. The libs layer no longer has anything app-specific. - From arts/cache: - bus / autoInvalidateOn options on ActiveCacheOptions. - wireAutoInvalidation internal subscription. - CACHE_AUTO_INVALIDATE_* constants and types. - From arts/perm: - bus / autoInvalidateOn options on ActivePermsOptions. - wireAutoInvalidation internal subscription. - PERM_AUTO_INVALIDATE_* constants and types. - From arts/connection: - bus option in EngineConnectionsOptions. - shouldWireBusSessionSource helper. - The "reacts to canonical app identity bus events" test that depended on the deleted bus-session-source. - From arts/active-app/active-app.svelte.ts: - createSiumEngine() / createActiveSession() / createActiveConnections() / createActivePerms() / createActiveAuth() factory methods. - App.Sess / App.Perms / App.Auth getters and the singleton guards (Sess !== undefined etc.). - APP_ORCHESTRATION_* preset system, resolveActiveAppOrchestration, STANDARD_ORCHESTRATION_TRANSLATORS, all five translator handles. - APP_ERROR_ALREADY_CREATED_* / APP_ERROR_CREATE_PERM_ENDPOINT_REQUIRED constants (orphan after factory removal). - From arts/active-app/test: - ecosystem.integration.test.ts (9 monolithic tests, ~1900 lines). - session-translator.test.ts. - create-sium-engine.test.ts. - From libs/active-app/test: - events.test.ts (covered the deleted publishers and the legacy APP_USER_IDENTITY_* causes). - APP_EVENT_USER_IDENTITY_CHANGED, APP_EVENT_TENANT_SWITCHED, APP_EVENT_PERMISSIONS_REFRESH_REQUESTED, APP_EVENT_CACHE_INVALIDATE_REQUESTED, APP_EVENT_CONNECTIVITY_CHANGED (only DISPOSE_STARTING survives). - Their associated payload interfaces and the APP_USER_IDENTITY_CAUSE_* constants. - publishAppUserIdentityChanged / publishAppPermsRefreshRequested / publishAppCacheInvalidateRequested / publishAppTenantSwitched / publishAppConnectivityChanged. publishAppDisposeStarting and the new onAppDisposeStarting helper remain. Final shape of arts/active-app/: - active-app.svelte.ts: builds Logger, Lang, Format, Frontend, Dom, Storage, Http, Timers, Bus, Orca, Cache, then the schema services via buildServiceBuilders. dispose() publishes DISPOSE_STARTING and tears everything down in reverse construction order. - services.ts, service-builder.ts, service-factories/, presets/, bus-context.svelte.ts, consts.ts, errors.ts, events.ts, types.ts, index.ts (public barrel exposing every define*, applyStandardOrca, types and errors). Suite: 1374 tests pass. The reduction from the prior 1408 reflects the deleted legacy tests; coverage of the new model is comprehensive (schema-declarative.test.ts, service-builder.test.ts, service-factories.test.ts, presets.test.ts, active-app.test.ts core, plus the existing per-art suites). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
export type {
AppServiceFactory,
AppServiceSchema,
CoreServices,
CoreServiceKey,
ResolveServiceInstances,
ServiceInitMode,
ServiceStatus
} from './services';
export { buildServiceBuilders } from './service-builder';
// Service factories — declarative `services: { … }` schema entries.
export {
defineActiveAuth,
defineActiveCache,
defineActiveConnections,
defineActiveDom,
defineActiveFormat,
defineActiveFrontend,
defineActiveLang,
defineActivePerm,
defineActiveSession,
defineActiveStorage,
defineEngineHttp,
defineEngineSium
} from './service-factories';
// Orchestration presets — opt-in reactions registered on `App.Orca`.
export {
applyCacheClearOnIdentityChange,
applyCacheClearOnRevoke,
applyPermInvalidateOnIdentityChange,
applyStandardOrca
} from './presets';
Build runtime infrastructure layer: aapp + 5 new artifacts Adds the application composition root and six new runtime artifacts. lang and logr alone could not cover an app surface — locale propagation, format helpers, frontend preferences, validation, persistence and DOM service all needed independent artifacts that aapp wires together under a single locale source of truth and a shared logger. New artifacts: - aapp: composition root. createActiveApp + createTestApp + App.createSiumEngine + frontend.persist + Storage wiring. - stor: pluggable adapters (local/session/memory/cookie + SSR via cookieAdapter.fromCookies), envelope versioning + migrate + TTL, validate via Standard Schema, intra-tab + cross-tab sync, Storage.clear(), per-entry adapter/namespace overrides. - adom: reactive DOM service. shareViewport opt-in + per-window tracker, dispose(). breakpoints, viewport, attribute writes. - fend: frontend preferences (theme, mode, dir, density, reducedMotion, reducedSound) with auto/clear/isAuto pattern. - fmts: localized formatting (numbers, currency, units, dates) with shared LocaleSource and per-domain auto/clear pattern. - sium: validation engine. Standard Schema interop, Lang/Logger injection, codec/refine/transform, domain types (color/date/time), introspection. Existing artifacts extended: - lang: BCP 47 SupportedLocale (LangBase | base-region), mono lang for monolingual apps, extend() leaf-overwrite warning, EngineLang/ActiveLang naming alignment with the rest of the project (no Instance suffix). - logr: EngineLogger.dispose(), failureThrottleMs anti-cascade for transports, README sync to the per-level filter API (minLevel removed). Cross-cutting: - $locale: shared LocaleSource type consumed by fmts and fend. - arts/README.md: artifact map, dependency graph, naming conventions. - Test pages for every artifact under /test/<artifact>. 733 tests passing; svelte-check clean except 2 pre-existing errors on sium/svelte provider (port pending). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 months ago
// Common storage adapters re-exported for ergonomic single import.
Rename modules from 4-letter aliases to full English words Drops the 4-letter alias convention in favour of a single homogeneous naming axis: full English words across filesystem, alias, wire format and constants. Module renames: - arts/aapp → arts/active-app (libs/aapp also) - arts/buss → arts/bus (libs/buss also) - arts/cach → arts/cache (libs/cach + svrs/cach also) - arts/conn → arts/connection - arts/fend → arts/frontend - arts/fmts → arts/formats (curr→currency, nums→numbers, unts→units) - arts/logr → arts/logger (libs/logr also) - arts/perm → arts/permissions (libs/perm + svrs/perm also) - arts/sess → arts/session - arts/stor → arts/storage - arts/timr → arts/timer (libs/timers → libs/timer) Modules left as-is: auth, dom, errs, http, lang, sium (already match their canonical name or are proper names). Special case: `aapp` could not become `app` because `$app` is reserved by SvelteKit (`$app/stores`, `$app/navigation`, ...). Compromise: - Filesystem and alias use `active-app` / `$active-app`. - Constants and class names use `App` / `APP_*` (no `active-` prefix). The `active-` prefix only disambiguates the alias from SvelteKit's namespace; the module is App. Special case: `permissions` keeps the plural for filesystem/alias/wire but constants and classes use the singular `PERMISSION_*` / `Permission*` because they describe the concept ("a permission effect"), not the module collection. Constants follow the new module name in caps: `STORAGE_*`, `BUS_*`, `CACHE_*`, `CONNECTION_*`, `FORMATS_*`, `LOGGER_*`, `SESSION_*`, `TIMER_*`, etc. Module values: `STORAGE_MODULE = 'storage'`, `BUS_MODULE = 'bus'`, `APP_MODULE = 'app'`, `PERMISSION_MODULE = 'permissions'`, etc. Wire/code format moved accordingly: `'storage::*'`, `'bus::*'`, `'session::*'`, `'permissions::*'`, etc. Diagnostic event values updated: `'storage.error'`, `'bus.event.published'`, `'connection.auth_failed'`, etc. App events use `'app.*'`: `AAPP_EVENT_* → APP_EVENT_*` with values `'app.user.identity.changed'`. Class renames (where they used the abbreviation): - AappAlreadyCreatedError → AppAlreadyCreatedError - BussError* → BusError* (where applicable) - Cach* → Cache* - Conn* → Connection* (e.g. ConnDisposedError → ConnectionDisposedError; ConnConnection* collapsed to Connection*) - Logr*Error → Logger*Error - Sess* → Session* (SessInvalidSessionError → SessionInvalidError) - Stor* → Storage* - Timr* → Timer* (TimrInactiveTimerError → TimerInactiveError) - AuthCachPort → AuthCachePort - AuthClientCach* → AuthClientCache* - AuthPermPort → AuthPermissionsPort Property renames in option types: - `cach?:` → `cache?:` in AuthClient options - `logr:` → `logger:` in svrs/auth ports - `timr:` → `timer:` in svrs/auth ports `docs/conventions.md` rewritten: - Rule 1 dropped the 4-letter alias mandate; lists the full English module names and special-cases active-app, lang, sium, permissions. - Rule 2 documents the new constant prefix convention and its two exceptions (APP_* for active-app, PERMISSION_* singular for permissions). - Rule 6 codifies that all error infrastructure (codes, messages, classes, guards) lives in a single `errors.ts` per module — removing the `consts.ts` / `errors.ts` split for error-related symbols. `libs/errs` adds `ErrorMessages` type so every module can declare its catalog as `<MOD>_ERROR_MESSAGES: ErrorMessages` instead of repeating the `Readonly<Record<ErrCode, string | (...args) => string>>` shape. Storage migrated as the first proof of the canonical pattern. All 1334 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
// `createMemoryAdapter` lives in `$storage` only — testing-specific.
export { localAdapter, sessionAdapter, cookieAdapter, withBroadcast } from '$storage';
export type {
CookieAdapterOptions,
ServerCookiesLike,
BroadcastAdapter,
BroadcastOptions
Rename modules from 4-letter aliases to full English words Drops the 4-letter alias convention in favour of a single homogeneous naming axis: full English words across filesystem, alias, wire format and constants. Module renames: - arts/aapp → arts/active-app (libs/aapp also) - arts/buss → arts/bus (libs/buss also) - arts/cach → arts/cache (libs/cach + svrs/cach also) - arts/conn → arts/connection - arts/fend → arts/frontend - arts/fmts → arts/formats (curr→currency, nums→numbers, unts→units) - arts/logr → arts/logger (libs/logr also) - arts/perm → arts/permissions (libs/perm + svrs/perm also) - arts/sess → arts/session - arts/stor → arts/storage - arts/timr → arts/timer (libs/timers → libs/timer) Modules left as-is: auth, dom, errs, http, lang, sium (already match their canonical name or are proper names). Special case: `aapp` could not become `app` because `$app` is reserved by SvelteKit (`$app/stores`, `$app/navigation`, ...). Compromise: - Filesystem and alias use `active-app` / `$active-app`. - Constants and class names use `App` / `APP_*` (no `active-` prefix). The `active-` prefix only disambiguates the alias from SvelteKit's namespace; the module is App. Special case: `permissions` keeps the plural for filesystem/alias/wire but constants and classes use the singular `PERMISSION_*` / `Permission*` because they describe the concept ("a permission effect"), not the module collection. Constants follow the new module name in caps: `STORAGE_*`, `BUS_*`, `CACHE_*`, `CONNECTION_*`, `FORMATS_*`, `LOGGER_*`, `SESSION_*`, `TIMER_*`, etc. Module values: `STORAGE_MODULE = 'storage'`, `BUS_MODULE = 'bus'`, `APP_MODULE = 'app'`, `PERMISSION_MODULE = 'permissions'`, etc. Wire/code format moved accordingly: `'storage::*'`, `'bus::*'`, `'session::*'`, `'permissions::*'`, etc. Diagnostic event values updated: `'storage.error'`, `'bus.event.published'`, `'connection.auth_failed'`, etc. App events use `'app.*'`: `AAPP_EVENT_* → APP_EVENT_*` with values `'app.user.identity.changed'`. Class renames (where they used the abbreviation): - AappAlreadyCreatedError → AppAlreadyCreatedError - BussError* → BusError* (where applicable) - Cach* → Cache* - Conn* → Connection* (e.g. ConnDisposedError → ConnectionDisposedError; ConnConnection* collapsed to Connection*) - Logr*Error → Logger*Error - Sess* → Session* (SessInvalidSessionError → SessionInvalidError) - Stor* → Storage* - Timr* → Timer* (TimrInactiveTimerError → TimerInactiveError) - AuthCachPort → AuthCachePort - AuthClientCach* → AuthClientCache* - AuthPermPort → AuthPermissionsPort Property renames in option types: - `cach?:` → `cache?:` in AuthClient options - `logr:` → `logger:` in svrs/auth ports - `timr:` → `timer:` in svrs/auth ports `docs/conventions.md` rewritten: - Rule 1 dropped the 4-letter alias mandate; lists the full English module names and special-cases active-app, lang, sium, permissions. - Rule 2 documents the new constant prefix convention and its two exceptions (APP_* for active-app, PERMISSION_* singular for permissions). - Rule 6 codifies that all error infrastructure (codes, messages, classes, guards) lives in a single `errors.ts` per module — removing the `consts.ts` / `errors.ts` split for error-related symbols. `libs/errs` adds `ErrorMessages` type so every module can declare its catalog as `<MOD>_ERROR_MESSAGES: ErrorMessages` instead of repeating the `Readonly<Record<ErrCode, string | (...args) => string>>` shape. Storage migrated as the first proof of the canonical pattern. All 1334 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 months ago
} from '$storage';

Powered by TurnKey Linux.