mythik 0.0.1 → 0.1.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/LICENSE +201 -0
- package/NOTICE +4 -0
- package/README.md +97 -2
- package/dist/actions/dispatcher.d.ts +46 -0
- package/dist/actions/dispatcher.d.ts.map +1 -0
- package/dist/actions/dispatcher.js +366 -0
- package/dist/actions/dispatcher.js.map +1 -0
- package/dist/actions/middleware.d.ts +27 -0
- package/dist/actions/middleware.d.ts.map +1 -0
- package/dist/actions/middleware.js +37 -0
- package/dist/actions/middleware.js.map +1 -0
- package/dist/actions/transaction-engine.d.ts +13 -0
- package/dist/actions/transaction-engine.d.ts.map +1 -0
- package/dist/actions/transaction-engine.js +96 -0
- package/dist/actions/transaction-engine.js.map +1 -0
- package/dist/app/app-engine.d.ts +106 -0
- package/dist/app/app-engine.d.ts.map +1 -0
- package/dist/app/app-engine.js +413 -0
- package/dist/app/app-engine.js.map +1 -0
- package/dist/auth/cross-tab.d.ts +24 -0
- package/dist/auth/cross-tab.d.ts.map +1 -0
- package/dist/auth/cross-tab.js +117 -0
- package/dist/auth/cross-tab.js.map +1 -0
- package/dist/auth/engine.d.ts +16 -0
- package/dist/auth/engine.d.ts.map +1 -0
- package/dist/auth/engine.js +225 -0
- package/dist/auth/engine.js.map +1 -0
- package/dist/auth/persistence.d.ts +21 -0
- package/dist/auth/persistence.d.ts.map +1 -0
- package/dist/auth/persistence.js +97 -0
- package/dist/auth/persistence.js.map +1 -0
- package/dist/auth/providers/custom-jwt.d.ts +41 -0
- package/dist/auth/providers/custom-jwt.d.ts.map +1 -0
- package/dist/auth/providers/custom-jwt.js +165 -0
- package/dist/auth/providers/custom-jwt.js.map +1 -0
- package/dist/auth/providers/mock.d.ts +7 -0
- package/dist/auth/providers/mock.d.ts.map +1 -0
- package/dist/auth/providers/mock.js +52 -0
- package/dist/auth/providers/mock.js.map +1 -0
- package/dist/auth/providers/supabase.d.ts +90 -0
- package/dist/auth/providers/supabase.d.ts.map +1 -0
- package/dist/auth/providers/supabase.js +102 -0
- package/dist/auth/providers/supabase.js.map +1 -0
- package/dist/auth/rate-limiter.d.ts +29 -0
- package/dist/auth/rate-limiter.d.ts.map +1 -0
- package/dist/auth/rate-limiter.js +67 -0
- package/dist/auth/rate-limiter.js.map +1 -0
- package/dist/auth/refresh-engine.d.ts +25 -0
- package/dist/auth/refresh-engine.d.ts.map +1 -0
- package/dist/auth/refresh-engine.js +59 -0
- package/dist/auth/refresh-engine.js.map +1 -0
- package/dist/auth/types.d.ts +89 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/contract/endpoint-map.d.ts +20 -0
- package/dist/contract/endpoint-map.d.ts.map +1 -0
- package/dist/contract/endpoint-map.js +57 -0
- package/dist/contract/endpoint-map.js.map +1 -0
- package/dist/contract/engine.d.ts +12 -0
- package/dist/contract/engine.d.ts.map +1 -0
- package/dist/contract/engine.js +80 -0
- package/dist/contract/engine.js.map +1 -0
- package/dist/contract/extractor.d.ts +7 -0
- package/dist/contract/extractor.d.ts.map +1 -0
- package/dist/contract/extractor.js +133 -0
- package/dist/contract/extractor.js.map +1 -0
- package/dist/contract/index.d.ts +4 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +2 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/contract/matcher.d.ts +13 -0
- package/dist/contract/matcher.d.ts.map +1 -0
- package/dist/contract/matcher.js +57 -0
- package/dist/contract/matcher.js.map +1 -0
- package/dist/contract/rules/endpoints-exist.d.ts +3 -0
- package/dist/contract/rules/endpoints-exist.d.ts.map +1 -0
- package/dist/contract/rules/endpoints-exist.js +29 -0
- package/dist/contract/rules/endpoints-exist.js.map +1 -0
- package/dist/contract/rules/fields-valid.d.ts +3 -0
- package/dist/contract/rules/fields-valid.d.ts.map +1 -0
- package/dist/contract/rules/fields-valid.js +39 -0
- package/dist/contract/rules/fields-valid.js.map +1 -0
- package/dist/contract/rules/params-match.d.ts +3 -0
- package/dist/contract/rules/params-match.d.ts.map +1 -0
- package/dist/contract/rules/params-match.js +40 -0
- package/dist/contract/rules/params-match.js.map +1 -0
- package/dist/contract/rules/permissions-consistent.d.ts +3 -0
- package/dist/contract/rules/permissions-consistent.d.ts.map +1 -0
- package/dist/contract/rules/permissions-consistent.js +52 -0
- package/dist/contract/rules/permissions-consistent.js.map +1 -0
- package/dist/contract/types.d.ts +66 -0
- package/dist/contract/types.d.ts.map +1 -0
- package/dist/contract/types.js +2 -0
- package/dist/contract/types.js.map +1 -0
- package/dist/data/data-sources.d.ts +26 -0
- package/dist/data/data-sources.d.ts.map +1 -0
- package/dist/data/data-sources.js +218 -0
- package/dist/data/data-sources.js.map +1 -0
- package/dist/data/fetch.d.ts +29 -0
- package/dist/data/fetch.d.ts.map +1 -0
- package/dist/data/fetch.js +63 -0
- package/dist/data/fetch.js.map +1 -0
- package/dist/data/offline.d.ts +29 -0
- package/dist/data/offline.d.ts.map +1 -0
- package/dist/data/offline.js +48 -0
- package/dist/data/offline.js.map +1 -0
- package/dist/data/realtime.d.ts +21 -0
- package/dist/data/realtime.d.ts.map +1 -0
- package/dist/data/realtime.js +40 -0
- package/dist/data/realtime.js.map +1 -0
- package/dist/derive/evaluator.d.ts +19 -0
- package/dist/derive/evaluator.d.ts.map +1 -0
- package/dist/derive/evaluator.js +59 -0
- package/dist/derive/evaluator.js.map +1 -0
- package/dist/derive/topo-sort.d.ts +10 -0
- package/dist/derive/topo-sort.d.ts.map +1 -0
- package/dist/derive/topo-sort.js +36 -0
- package/dist/derive/topo-sort.js.map +1 -0
- package/dist/design/animation/cascade-types.d.ts +23 -0
- package/dist/design/animation/cascade-types.d.ts.map +1 -0
- package/dist/design/animation/cascade-types.js +2 -0
- package/dist/design/animation/cascade-types.js.map +1 -0
- package/dist/design/animation/cascade.d.ts +4 -0
- package/dist/design/animation/cascade.d.ts.map +1 -0
- package/dist/design/animation/cascade.js +73 -0
- package/dist/design/animation/cascade.js.map +1 -0
- package/dist/design/animation/css-keyframes.d.ts +8 -0
- package/dist/design/animation/css-keyframes.d.ts.map +1 -0
- package/dist/design/animation/css-keyframes.js +72 -0
- package/dist/design/animation/css-keyframes.js.map +1 -0
- package/dist/design/animation/index.d.ts +14 -0
- package/dist/design/animation/index.d.ts.map +1 -0
- package/dist/design/animation/index.js +9 -0
- package/dist/design/animation/index.js.map +1 -0
- package/dist/design/animation/keyframes-builder.d.ts +40 -0
- package/dist/design/animation/keyframes-builder.d.ts.map +1 -0
- package/dist/design/animation/keyframes-builder.js +140 -0
- package/dist/design/animation/keyframes-builder.js.map +1 -0
- package/dist/design/animation/reanimated-spec.d.ts +16 -0
- package/dist/design/animation/reanimated-spec.d.ts.map +1 -0
- package/dist/design/animation/reanimated-spec.js +162 -0
- package/dist/design/animation/reanimated-spec.js.map +1 -0
- package/dist/design/animation/reduced-motion.d.ts +3 -0
- package/dist/design/animation/reduced-motion.d.ts.map +1 -0
- package/dist/design/animation/reduced-motion.js +54 -0
- package/dist/design/animation/reduced-motion.js.map +1 -0
- package/dist/design/animation/resolver.d.ts +3 -0
- package/dist/design/animation/resolver.d.ts.map +1 -0
- package/dist/design/animation/resolver.js +86 -0
- package/dist/design/animation/resolver.js.map +1 -0
- package/dist/design/animation/types.d.ts +109 -0
- package/dist/design/animation/types.d.ts.map +1 -0
- package/dist/design/animation/types.js +7 -0
- package/dist/design/animation/types.js.map +1 -0
- package/dist/design/animation/validator.d.ts +44 -0
- package/dist/design/animation/validator.d.ts.map +1 -0
- package/dist/design/animation/validator.js +169 -0
- package/dist/design/animation/validator.js.map +1 -0
- package/dist/design/background/blobs/catalog.d.ts +10 -0
- package/dist/design/background/blobs/catalog.d.ts.map +1 -0
- package/dist/design/background/blobs/catalog.js +63 -0
- package/dist/design/background/blobs/catalog.js.map +1 -0
- package/dist/design/background/blobs/index.d.ts +4 -0
- package/dist/design/background/blobs/index.d.ts.map +1 -0
- package/dist/design/background/blobs/index.js +5 -0
- package/dist/design/background/blobs/index.js.map +1 -0
- package/dist/design/background/blobs/resolver.d.ts +16 -0
- package/dist/design/background/blobs/resolver.d.ts.map +1 -0
- package/dist/design/background/blobs/resolver.js +301 -0
- package/dist/design/background/blobs/resolver.js.map +1 -0
- package/dist/design/background/blobs/types.d.ts +112 -0
- package/dist/design/background/blobs/types.d.ts.map +1 -0
- package/dist/design/background/blobs/types.js +27 -0
- package/dist/design/background/blobs/types.js.map +1 -0
- package/dist/design/background/grain.d.ts +3 -0
- package/dist/design/background/grain.d.ts.map +1 -0
- package/dist/design/background/grain.js +23 -0
- package/dist/design/background/grain.js.map +1 -0
- package/dist/design/background/index.d.ts +8 -0
- package/dist/design/background/index.d.ts.map +1 -0
- package/dist/design/background/index.js +8 -0
- package/dist/design/background/index.js.map +1 -0
- package/dist/design/background/layers.d.ts +3 -0
- package/dist/design/background/layers.d.ts.map +1 -0
- package/dist/design/background/layers.js +23 -0
- package/dist/design/background/layers.js.map +1 -0
- package/dist/design/background/patterns/chevron.d.ts +8 -0
- package/dist/design/background/patterns/chevron.d.ts.map +1 -0
- package/dist/design/background/patterns/chevron.js +10 -0
- package/dist/design/background/patterns/chevron.js.map +1 -0
- package/dist/design/background/patterns/crosshatch.d.ts +8 -0
- package/dist/design/background/patterns/crosshatch.d.ts.map +1 -0
- package/dist/design/background/patterns/crosshatch.js +12 -0
- package/dist/design/background/patterns/crosshatch.js.map +1 -0
- package/dist/design/background/patterns/diagonal.d.ts +8 -0
- package/dist/design/background/patterns/diagonal.d.ts.map +1 -0
- package/dist/design/background/patterns/diagonal.js +7 -0
- package/dist/design/background/patterns/diagonal.js.map +1 -0
- package/dist/design/background/patterns/dots.d.ts +7 -0
- package/dist/design/background/patterns/dots.d.ts.map +1 -0
- package/dist/design/background/patterns/dots.js +9 -0
- package/dist/design/background/patterns/dots.js.map +1 -0
- package/dist/design/background/patterns/grid.d.ts +7 -0
- package/dist/design/background/patterns/grid.d.ts.map +1 -0
- package/dist/design/background/patterns/grid.js +8 -0
- package/dist/design/background/patterns/grid.js.map +1 -0
- package/dist/design/background/patterns/index.d.ts +8 -0
- package/dist/design/background/patterns/index.d.ts.map +1 -0
- package/dist/design/background/patterns/index.js +8 -0
- package/dist/design/background/patterns/index.js.map +1 -0
- package/dist/design/background/patterns/iso.d.ts +7 -0
- package/dist/design/background/patterns/iso.d.ts.map +1 -0
- package/dist/design/background/patterns/iso.js +11 -0
- package/dist/design/background/patterns/iso.js.map +1 -0
- package/dist/design/background/patterns/resolver.d.ts +3 -0
- package/dist/design/background/patterns/resolver.d.ts.map +1 -0
- package/dist/design/background/patterns/resolver.js +56 -0
- package/dist/design/background/patterns/resolver.js.map +1 -0
- package/dist/design/background/primitives/gradient.d.ts +3 -0
- package/dist/design/background/primitives/gradient.d.ts.map +1 -0
- package/dist/design/background/primitives/gradient.js +68 -0
- package/dist/design/background/primitives/gradient.js.map +1 -0
- package/dist/design/background/primitives/image.d.ts +3 -0
- package/dist/design/background/primitives/image.d.ts.map +1 -0
- package/dist/design/background/primitives/image.js +12 -0
- package/dist/design/background/primitives/image.js.map +1 -0
- package/dist/design/background/primitives/index.d.ts +4 -0
- package/dist/design/background/primitives/index.d.ts.map +1 -0
- package/dist/design/background/primitives/index.js +4 -0
- package/dist/design/background/primitives/index.js.map +1 -0
- package/dist/design/background/primitives/solid.d.ts +8 -0
- package/dist/design/background/primitives/solid.d.ts.map +1 -0
- package/dist/design/background/primitives/solid.js +15 -0
- package/dist/design/background/primitives/solid.js.map +1 -0
- package/dist/design/background/resolver.d.ts +3 -0
- package/dist/design/background/resolver.d.ts.map +1 -0
- package/dist/design/background/resolver.js +20 -0
- package/dist/design/background/resolver.js.map +1 -0
- package/dist/design/background/sanitizer.d.ts +2 -0
- package/dist/design/background/sanitizer.d.ts.map +1 -0
- package/dist/design/background/sanitizer.js +54 -0
- package/dist/design/background/sanitizer.js.map +1 -0
- package/dist/design/deep-tokens.d.ts +125 -0
- package/dist/design/deep-tokens.d.ts.map +1 -0
- package/dist/design/deep-tokens.js +115 -0
- package/dist/design/deep-tokens.js.map +1 -0
- package/dist/design/dna.d.ts +7 -0
- package/dist/design/dna.d.ts.map +1 -0
- package/dist/design/dna.js +210 -0
- package/dist/design/dna.js.map +1 -0
- package/dist/design/identity/color.d.ts +8 -0
- package/dist/design/identity/color.d.ts.map +1 -0
- package/dist/design/identity/color.js +64 -0
- package/dist/design/identity/color.js.map +1 -0
- package/dist/design/identity/elevation.d.ts +8 -0
- package/dist/design/identity/elevation.d.ts.map +1 -0
- package/dist/design/identity/elevation.js +31 -0
- package/dist/design/identity/elevation.js.map +1 -0
- package/dist/design/identity/index.d.ts +12 -0
- package/dist/design/identity/index.d.ts.map +1 -0
- package/dist/design/identity/index.js +14 -0
- package/dist/design/identity/index.js.map +1 -0
- package/dist/design/identity/shape.d.ts +4 -0
- package/dist/design/identity/shape.d.ts.map +1 -0
- package/dist/design/identity/shape.js +23 -0
- package/dist/design/identity/shape.js.map +1 -0
- package/dist/design/identity/surface.d.ts +18 -0
- package/dist/design/identity/surface.d.ts.map +1 -0
- package/dist/design/identity/surface.js +125 -0
- package/dist/design/identity/surface.js.map +1 -0
- package/dist/design/identity/types.d.ts +280 -0
- package/dist/design/identity/types.d.ts.map +1 -0
- package/dist/design/identity/types.js +21 -0
- package/dist/design/identity/types.js.map +1 -0
- package/dist/design/identity/typography.d.ts +7 -0
- package/dist/design/identity/typography.d.ts.map +1 -0
- package/dist/design/identity/typography.js +42 -0
- package/dist/design/identity/typography.js.map +1 -0
- package/dist/design/identity-resolver.d.ts +15 -0
- package/dist/design/identity-resolver.d.ts.map +1 -0
- package/dist/design/identity-resolver.js +52 -0
- package/dist/design/identity-resolver.js.map +1 -0
- package/dist/design/oklch.d.ts +10 -0
- package/dist/design/oklch.d.ts.map +1 -0
- package/dist/design/oklch.js +61 -0
- package/dist/design/oklch.js.map +1 -0
- package/dist/design/palette.d.ts +26 -0
- package/dist/design/palette.d.ts.map +1 -0
- package/dist/design/palette.js +73 -0
- package/dist/design/palette.js.map +1 -0
- package/dist/design/presets.d.ts +18 -0
- package/dist/design/presets.d.ts.map +1 -0
- package/dist/design/presets.js +2 -0
- package/dist/design/presets.js.map +1 -0
- package/dist/design/recipes/animations.d.ts +11 -0
- package/dist/design/recipes/animations.d.ts.map +1 -0
- package/dist/design/recipes/animations.js +180 -0
- package/dist/design/recipes/animations.js.map +1 -0
- package/dist/design/recipes/backgrounds.d.ts +3 -0
- package/dist/design/recipes/backgrounds.d.ts.map +1 -0
- package/dist/design/recipes/backgrounds.js +152 -0
- package/dist/design/recipes/backgrounds.js.map +1 -0
- package/dist/design/recipes/index.d.ts +2 -0
- package/dist/design/recipes/index.d.ts.map +1 -0
- package/dist/design/recipes/index.js +2 -0
- package/dist/design/recipes/index.js.map +1 -0
- package/dist/design/surface-to-css.d.ts +57 -0
- package/dist/design/surface-to-css.d.ts.map +1 -0
- package/dist/design/surface-to-css.js +130 -0
- package/dist/design/surface-to-css.js.map +1 -0
- package/dist/design/surface-to-rn.d.ts +57 -0
- package/dist/design/surface-to-rn.d.ts.map +1 -0
- package/dist/design/surface-to-rn.js +133 -0
- package/dist/design/surface-to-rn.js.map +1 -0
- package/dist/design/tokens.d.ts +67 -0
- package/dist/design/tokens.d.ts.map +1 -0
- package/dist/design/tokens.js +36 -0
- package/dist/design/tokens.js.map +1 -0
- package/dist/device/context.d.ts +13 -0
- package/dist/device/context.d.ts.map +1 -0
- package/dist/device/context.js +2 -0
- package/dist/device/context.js.map +1 -0
- package/dist/editor-session/clone.d.ts +4 -0
- package/dist/editor-session/clone.d.ts.map +1 -0
- package/dist/editor-session/clone.js +55 -0
- package/dist/editor-session/clone.js.map +1 -0
- package/dist/editor-session/engine.d.ts +21 -0
- package/dist/editor-session/engine.d.ts.map +1 -0
- package/dist/editor-session/engine.js +375 -0
- package/dist/editor-session/engine.js.map +1 -0
- package/dist/editor-session/persistence.d.ts +8 -0
- package/dist/editor-session/persistence.d.ts.map +1 -0
- package/dist/editor-session/persistence.js +89 -0
- package/dist/editor-session/persistence.js.map +1 -0
- package/dist/editor-session/types.d.ts +90 -0
- package/dist/editor-session/types.d.ts.map +1 -0
- package/dist/editor-session/types.js +2 -0
- package/dist/editor-session/types.js.map +1 -0
- package/dist/editor-session/validators.d.ts +5 -0
- package/dist/editor-session/validators.d.ts.map +1 -0
- package/dist/editor-session/validators.js +106 -0
- package/dist/editor-session/validators.js.map +1 -0
- package/dist/elements/composer.d.ts +109 -0
- package/dist/elements/composer.d.ts.map +1 -0
- package/dist/elements/composer.js +129 -0
- package/dist/elements/composer.js.map +1 -0
- package/dist/export/csv.d.ts +3 -0
- package/dist/export/csv.d.ts.map +1 -0
- package/dist/export/csv.js +16 -0
- package/dist/export/csv.js.map +1 -0
- package/dist/export/download.d.ts +2 -0
- package/dist/export/download.d.ts.map +1 -0
- package/dist/export/download.js +13 -0
- package/dist/export/download.js.map +1 -0
- package/dist/export/format.d.ts +3 -0
- package/dist/export/format.d.ts.map +1 -0
- package/dist/export/format.js +43 -0
- package/dist/export/format.js.map +1 -0
- package/dist/export/types.d.ts +22 -0
- package/dist/export/types.d.ts.map +1 -0
- package/dist/export/types.js +2 -0
- package/dist/export/types.js.map +1 -0
- package/dist/expressions/deep-resolve.d.ts +4 -0
- package/dist/expressions/deep-resolve.d.ts.map +1 -0
- package/dist/expressions/deep-resolve.js +20 -0
- package/dist/expressions/deep-resolve.js.map +1 -0
- package/dist/expressions/handlers/array.d.ts +19 -0
- package/dist/expressions/handlers/array.d.ts.map +1 -0
- package/dist/expressions/handlers/array.js +161 -0
- package/dist/expressions/handlers/array.js.map +1 -0
- package/dist/expressions/handlers/auth.d.ts +13 -0
- package/dist/expressions/handlers/auth.d.ts.map +1 -0
- package/dist/expressions/handlers/auth.js +90 -0
- package/dist/expressions/handlers/auth.js.map +1 -0
- package/dist/expressions/handlers/bind.d.ts +22 -0
- package/dist/expressions/handlers/bind.d.ts.map +1 -0
- package/dist/expressions/handlers/bind.js +57 -0
- package/dist/expressions/handlers/bind.js.map +1 -0
- package/dist/expressions/handlers/breakpoint.d.ts +10 -0
- package/dist/expressions/handlers/breakpoint.d.ts.map +1 -0
- package/dist/expressions/handlers/breakpoint.js +39 -0
- package/dist/expressions/handlers/breakpoint.js.map +1 -0
- package/dist/expressions/handlers/computed.d.ts +3 -0
- package/dist/expressions/handlers/computed.d.ts.map +1 -0
- package/dist/expressions/handlers/computed.js +20 -0
- package/dist/expressions/handlers/computed.js.map +1 -0
- package/dist/expressions/handlers/cond.d.ts +3 -0
- package/dist/expressions/handlers/cond.d.ts.map +1 -0
- package/dist/expressions/handlers/cond.js +57 -0
- package/dist/expressions/handlers/cond.js.map +1 -0
- package/dist/expressions/handlers/date.d.ts +14 -0
- package/dist/expressions/handlers/date.d.ts.map +1 -0
- package/dist/expressions/handlers/date.js +95 -0
- package/dist/expressions/handlers/date.js.map +1 -0
- package/dist/expressions/handlers/format.d.ts +19 -0
- package/dist/expressions/handlers/format.d.ts.map +1 -0
- package/dist/expressions/handlers/format.js +93 -0
- package/dist/expressions/handlers/format.js.map +1 -0
- package/dist/expressions/handlers/group.d.ts +25 -0
- package/dist/expressions/handlers/group.d.ts.map +1 -0
- package/dist/expressions/handlers/group.js +85 -0
- package/dist/expressions/handlers/group.js.map +1 -0
- package/dist/expressions/handlers/i18n.d.ts +8 -0
- package/dist/expressions/handlers/i18n.d.ts.map +1 -0
- package/dist/expressions/handlers/i18n.js +35 -0
- package/dist/expressions/handlers/i18n.js.map +1 -0
- package/dist/expressions/handlers/index.d.ts +4 -0
- package/dist/expressions/handlers/index.d.ts.map +1 -0
- package/dist/expressions/handlers/index.js +52 -0
- package/dist/expressions/handlers/index.js.map +1 -0
- package/dist/expressions/handlers/let.d.ts +4 -0
- package/dist/expressions/handlers/let.d.ts.map +1 -0
- package/dist/expressions/handlers/let.js +36 -0
- package/dist/expressions/handlers/let.js.map +1 -0
- package/dist/expressions/handlers/logic.d.ts +27 -0
- package/dist/expressions/handlers/logic.d.ts.map +1 -0
- package/dist/expressions/handlers/logic.js +52 -0
- package/dist/expressions/handlers/logic.js.map +1 -0
- package/dist/expressions/handlers/math.d.ts +13 -0
- package/dist/expressions/handlers/math.d.ts.map +1 -0
- package/dist/expressions/handlers/math.js +58 -0
- package/dist/expressions/handlers/math.js.map +1 -0
- package/dist/expressions/handlers/platform.d.ts +13 -0
- package/dist/expressions/handlers/platform.d.ts.map +1 -0
- package/dist/expressions/handlers/platform.js +37 -0
- package/dist/expressions/handlers/platform.js.map +1 -0
- package/dist/expressions/handlers/prop.d.ts +10 -0
- package/dist/expressions/handlers/prop.d.ts.map +1 -0
- package/dist/expressions/handlers/prop.js +18 -0
- package/dist/expressions/handlers/prop.js.map +1 -0
- package/dist/expressions/handlers/selection.d.ts +10 -0
- package/dist/expressions/handlers/selection.d.ts.map +1 -0
- package/dist/expressions/handlers/selection.js +33 -0
- package/dist/expressions/handlers/selection.js.map +1 -0
- package/dist/expressions/handlers/state.d.ts +3 -0
- package/dist/expressions/handlers/state.d.ts.map +1 -0
- package/dist/expressions/handlers/state.js +8 -0
- package/dist/expressions/handlers/state.js.map +1 -0
- package/dist/expressions/handlers/switch.d.ts +15 -0
- package/dist/expressions/handlers/switch.d.ts.map +1 -0
- package/dist/expressions/handlers/switch.js +31 -0
- package/dist/expressions/handlers/switch.js.map +1 -0
- package/dist/expressions/handlers/template.d.ts +3 -0
- package/dist/expressions/handlers/template.d.ts.map +1 -0
- package/dist/expressions/handlers/template.js +23 -0
- package/dist/expressions/handlers/template.js.map +1 -0
- package/dist/expressions/handlers/token.d.ts +3 -0
- package/dist/expressions/handlers/token.d.ts.map +1 -0
- package/dist/expressions/handlers/token.js +40 -0
- package/dist/expressions/handlers/token.js.map +1 -0
- package/dist/expressions/handlers/unique-id.d.ts +11 -0
- package/dist/expressions/handlers/unique-id.d.ts.map +1 -0
- package/dist/expressions/handlers/unique-id.js +52 -0
- package/dist/expressions/handlers/unique-id.js.map +1 -0
- package/dist/expressions/registry.d.ts +8 -0
- package/dist/expressions/registry.d.ts.map +1 -0
- package/dist/expressions/registry.js +35 -0
- package/dist/expressions/registry.js.map +1 -0
- package/dist/expressions/resolver.d.ts +15 -0
- package/dist/expressions/resolver.d.ts.map +1 -0
- package/dist/expressions/resolver.js +56 -0
- package/dist/expressions/resolver.js.map +1 -0
- package/dist/factory.d.ts +56 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +265 -0
- package/dist/factory.js.map +1 -0
- package/dist/fetch/framework-fetch.d.ts +12 -0
- package/dist/fetch/framework-fetch.d.ts.map +1 -0
- package/dist/fetch/framework-fetch.js +36 -0
- package/dist/fetch/framework-fetch.js.map +1 -0
- package/dist/fetch/interceptors/auth.d.ts +19 -0
- package/dist/fetch/interceptors/auth.d.ts.map +1 -0
- package/dist/fetch/interceptors/auth.js +66 -0
- package/dist/fetch/interceptors/auth.js.map +1 -0
- package/dist/fetch/interceptors/logging.d.ts +8 -0
- package/dist/fetch/interceptors/logging.d.ts.map +1 -0
- package/dist/fetch/interceptors/logging.js +40 -0
- package/dist/fetch/interceptors/logging.js.map +1 -0
- package/dist/fetch/interceptors/retry.d.ts +20 -0
- package/dist/fetch/interceptors/retry.d.ts.map +1 -0
- package/dist/fetch/interceptors/retry.js +34 -0
- package/dist/fetch/interceptors/retry.js.map +1 -0
- package/dist/fetch/interceptors/timeout.d.ts +7 -0
- package/dist/fetch/interceptors/timeout.d.ts.map +1 -0
- package/dist/fetch/interceptors/timeout.js +20 -0
- package/dist/fetch/interceptors/timeout.js.map +1 -0
- package/dist/fetch/types.d.ts +30 -0
- package/dist/fetch/types.d.ts.map +1 -0
- package/dist/fetch/types.js +2 -0
- package/dist/fetch/types.js.map +1 -0
- package/dist/forms/engine.d.ts +3 -0
- package/dist/forms/engine.d.ts.map +1 -0
- package/dist/forms/engine.js +167 -0
- package/dist/forms/engine.js.map +1 -0
- package/dist/forms/types.d.ts +30 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +2 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/i18n/engine.d.ts +15 -0
- package/dist/i18n/engine.d.ts.map +1 -0
- package/dist/i18n/engine.js +61 -0
- package/dist/i18n/engine.js.map +1 -0
- package/dist/index.d.ts +161 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/interactions/data-operations.d.ts +51 -0
- package/dist/interactions/data-operations.d.ts.map +1 -0
- package/dist/interactions/data-operations.js +64 -0
- package/dist/interactions/data-operations.js.map +1 -0
- package/dist/interactions/drag-drop.d.ts +14 -0
- package/dist/interactions/drag-drop.d.ts.map +1 -0
- package/dist/interactions/drag-drop.js +35 -0
- package/dist/interactions/drag-drop.js.map +1 -0
- package/dist/interactions/export.d.ts +24 -0
- package/dist/interactions/export.d.ts.map +1 -0
- package/dist/interactions/export.js +44 -0
- package/dist/interactions/export.js.map +1 -0
- package/dist/interactions/history.d.ts +16 -0
- package/dist/interactions/history.d.ts.map +1 -0
- package/dist/interactions/history.js +52 -0
- package/dist/interactions/history.js.map +1 -0
- package/dist/motion/engine.d.ts +47 -0
- package/dist/motion/engine.d.ts.map +1 -0
- package/dist/motion/engine.js +81 -0
- package/dist/motion/engine.js.map +1 -0
- package/dist/navigation/router.d.ts +36 -0
- package/dist/navigation/router.d.ts.map +1 -0
- package/dist/navigation/router.js +51 -0
- package/dist/navigation/router.js.map +1 -0
- package/dist/permissions/evaluator.d.ts +15 -0
- package/dist/permissions/evaluator.d.ts.map +1 -0
- package/dist/permissions/evaluator.js +32 -0
- package/dist/permissions/evaluator.js.map +1 -0
- package/dist/plugins/loader.d.ts +30 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +87 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/reference/generator.d.ts +25 -0
- package/dist/reference/generator.d.ts.map +1 -0
- package/dist/reference/generator.js +808 -0
- package/dist/reference/generator.js.map +1 -0
- package/dist/renderer/deps.d.ts +24 -0
- package/dist/renderer/deps.d.ts.map +1 -0
- package/dist/renderer/deps.js +150 -0
- package/dist/renderer/deps.js.map +1 -0
- package/dist/renderer/engine.d.ts +15 -0
- package/dist/renderer/engine.d.ts.map +1 -0
- package/dist/renderer/engine.js +1097 -0
- package/dist/renderer/engine.js.map +1 -0
- package/dist/renderer/lazy-paths.d.ts +14 -0
- package/dist/renderer/lazy-paths.d.ts.map +1 -0
- package/dist/renderer/lazy-paths.js +63 -0
- package/dist/renderer/lazy-paths.js.map +1 -0
- package/dist/renderer/prop-schemas.d.ts +17 -0
- package/dist/renderer/prop-schemas.d.ts.map +1 -0
- package/dist/renderer/prop-schemas.js +81 -0
- package/dist/renderer/prop-schemas.js.map +1 -0
- package/dist/renderer/registry.d.ts +10 -0
- package/dist/renderer/registry.d.ts.map +1 -0
- package/dist/renderer/registry.js +22 -0
- package/dist/renderer/registry.js.map +1 -0
- package/dist/renderer/variants.d.ts +54 -0
- package/dist/renderer/variants.d.ts.map +1 -0
- package/dist/renderer/variants.js +105 -0
- package/dist/renderer/variants.js.map +1 -0
- package/dist/runtime/mount-spec-runtime.d.ts +59 -0
- package/dist/runtime/mount-spec-runtime.d.ts.map +1 -0
- package/dist/runtime/mount-spec-runtime.js +73 -0
- package/dist/runtime/mount-spec-runtime.js.map +1 -0
- package/dist/security/api-spec-validator.d.ts +13 -0
- package/dist/security/api-spec-validator.d.ts.map +1 -0
- package/dist/security/api-spec-validator.js +347 -0
- package/dist/security/api-spec-validator.js.map +1 -0
- package/dist/security/app-spec-validator.d.ts +4 -0
- package/dist/security/app-spec-validator.d.ts.map +1 -0
- package/dist/security/app-spec-validator.js +200 -0
- package/dist/security/app-spec-validator.js.map +1 -0
- package/dist/security/identifier-guard.d.ts +3 -0
- package/dist/security/identifier-guard.d.ts.map +1 -0
- package/dist/security/identifier-guard.js +15 -0
- package/dist/security/identifier-guard.js.map +1 -0
- package/dist/security/identity-token-validator.d.ts +3 -0
- package/dist/security/identity-token-validator.d.ts.map +1 -0
- package/dist/security/identity-token-validator.js +121 -0
- package/dist/security/identity-token-validator.js.map +1 -0
- package/dist/security/index.d.ts +14 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +8 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/protection-registry.d.ts +24 -0
- package/dist/security/protection-registry.d.ts.map +1 -0
- package/dist/security/protection-registry.js +35 -0
- package/dist/security/protection-registry.js.map +1 -0
- package/dist/security/rate-limiter.d.ts +23 -0
- package/dist/security/rate-limiter.d.ts.map +1 -0
- package/dist/security/rate-limiter.js +44 -0
- package/dist/security/rate-limiter.js.map +1 -0
- package/dist/security/spec-signing.d.ts +23 -0
- package/dist/security/spec-signing.d.ts.map +1 -0
- package/dist/security/spec-signing.js +62 -0
- package/dist/security/spec-signing.js.map +1 -0
- package/dist/security/spec-validator.d.ts +60 -0
- package/dist/security/spec-validator.d.ts.map +1 -0
- package/dist/security/spec-validator.js +903 -0
- package/dist/security/spec-validator.js.map +1 -0
- package/dist/security/state-protection.d.ts +23 -0
- package/dist/security/state-protection.d.ts.map +1 -0
- package/dist/security/state-protection.js +49 -0
- package/dist/security/state-protection.js.map +1 -0
- package/dist/security/url-whitelist.d.ts +14 -0
- package/dist/security/url-whitelist.d.ts.map +1 -0
- package/dist/security/url-whitelist.js +37 -0
- package/dist/security/url-whitelist.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +8 -0
- package/dist/server.js.map +1 -0
- package/dist/spec-engine/app-elements.d.ts +5 -0
- package/dist/spec-engine/app-elements.d.ts.map +1 -0
- package/dist/spec-engine/app-elements.js +36 -0
- package/dist/spec-engine/app-elements.js.map +1 -0
- package/dist/spec-engine/app-manifest.d.ts +3 -0
- package/dist/spec-engine/app-manifest.d.ts.map +1 -0
- package/dist/spec-engine/app-manifest.js +132 -0
- package/dist/spec-engine/app-manifest.js.map +1 -0
- package/dist/spec-engine/elements.d.ts +8 -0
- package/dist/spec-engine/elements.d.ts.map +1 -0
- package/dist/spec-engine/elements.js +18 -0
- package/dist/spec-engine/elements.js.map +1 -0
- package/dist/spec-engine/engine.d.ts +3 -0
- package/dist/spec-engine/engine.d.ts.map +1 -0
- package/dist/spec-engine/engine.js +76 -0
- package/dist/spec-engine/engine.js.map +1 -0
- package/dist/spec-engine/handlers/api-handler.d.ts +5 -0
- package/dist/spec-engine/handlers/api-handler.d.ts.map +1 -0
- package/dist/spec-engine/handlers/api-handler.js +111 -0
- package/dist/spec-engine/handlers/api-handler.js.map +1 -0
- package/dist/spec-engine/handlers/app-handler.d.ts +4 -0
- package/dist/spec-engine/handlers/app-handler.d.ts.map +1 -0
- package/dist/spec-engine/handlers/app-handler.js +41 -0
- package/dist/spec-engine/handlers/app-handler.js.map +1 -0
- package/dist/spec-engine/handlers/index.d.ts +8 -0
- package/dist/spec-engine/handlers/index.d.ts.map +1 -0
- package/dist/spec-engine/handlers/index.js +17 -0
- package/dist/spec-engine/handlers/index.js.map +1 -0
- package/dist/spec-engine/handlers/screen-handler.d.ts +4 -0
- package/dist/spec-engine/handlers/screen-handler.d.ts.map +1 -0
- package/dist/spec-engine/handlers/screen-handler.js +34 -0
- package/dist/spec-engine/handlers/screen-handler.js.map +1 -0
- package/dist/spec-engine/manifest.d.ts +11 -0
- package/dist/spec-engine/manifest.d.ts.map +1 -0
- package/dist/spec-engine/manifest.js +76 -0
- package/dist/spec-engine/manifest.js.map +1 -0
- package/dist/spec-engine/types.d.ts +61 -0
- package/dist/spec-engine/types.d.ts.map +1 -0
- package/dist/spec-engine/types.js +2 -0
- package/dist/spec-engine/types.js.map +1 -0
- package/dist/spec-stores/file.d.ts +12 -0
- package/dist/spec-stores/file.d.ts.map +1 -0
- package/dist/spec-stores/file.js +32 -0
- package/dist/spec-stores/file.js.map +1 -0
- package/dist/spec-stores/memory-versioned.d.ts +22 -0
- package/dist/spec-stores/memory-versioned.d.ts.map +1 -0
- package/dist/spec-stores/memory-versioned.js +125 -0
- package/dist/spec-stores/memory-versioned.js.map +1 -0
- package/dist/spec-stores/memory.d.ts +10 -0
- package/dist/spec-stores/memory.d.ts.map +1 -0
- package/dist/spec-stores/memory.js +31 -0
- package/dist/spec-stores/memory.js.map +1 -0
- package/dist/spec-stores/sqlserver-versioned.d.ts +44 -0
- package/dist/spec-stores/sqlserver-versioned.d.ts.map +1 -0
- package/dist/spec-stores/sqlserver-versioned.js +253 -0
- package/dist/spec-stores/sqlserver-versioned.js.map +1 -0
- package/dist/spec-stores/sqlserver.d.ts +27 -0
- package/dist/spec-stores/sqlserver.d.ts.map +1 -0
- package/dist/spec-stores/sqlserver.js +78 -0
- package/dist/spec-stores/sqlserver.js.map +1 -0
- package/dist/spec-stores/supabase-versioned.d.ts +38 -0
- package/dist/spec-stores/supabase-versioned.d.ts.map +1 -0
- package/dist/spec-stores/supabase-versioned.js +197 -0
- package/dist/spec-stores/supabase-versioned.js.map +1 -0
- package/dist/spec-stores/supabase.d.ts +18 -0
- package/dist/spec-stores/supabase.d.ts.map +1 -0
- package/dist/spec-stores/supabase.js +68 -0
- package/dist/spec-stores/supabase.js.map +1 -0
- package/dist/state/reserved-paths.d.ts +41 -0
- package/dist/state/reserved-paths.d.ts.map +1 -0
- package/dist/state/reserved-paths.js +40 -0
- package/dist/state/reserved-paths.js.map +1 -0
- package/dist/state/store.d.ts +18 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +114 -0
- package/dist/state/store.js.map +1 -0
- package/dist/storage/supabase.d.ts +37 -0
- package/dist/storage/supabase.d.ts.map +1 -0
- package/dist/storage/supabase.js +22 -0
- package/dist/storage/supabase.js.map +1 -0
- package/dist/storage/types.d.ts +22 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/upload-action.d.ts +22 -0
- package/dist/storage/upload-action.d.ts.map +1 -0
- package/dist/storage/upload-action.js +117 -0
- package/dist/storage/upload-action.js.map +1 -0
- package/dist/storage/url.d.ts +17 -0
- package/dist/storage/url.d.ts.map +1 -0
- package/dist/storage/url.js +48 -0
- package/dist/storage/url.js.map +1 -0
- package/dist/streaming/compiler.d.ts +26 -0
- package/dist/streaming/compiler.d.ts.map +1 -0
- package/dist/streaming/compiler.js +54 -0
- package/dist/streaming/compiler.js.map +1 -0
- package/dist/streaming/patch.d.ts +19 -0
- package/dist/streaming/patch.d.ts.map +1 -0
- package/dist/streaming/patch.js +139 -0
- package/dist/streaming/patch.js.map +1 -0
- package/dist/types.d.ts +443 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/util/to-array.d.ts +2 -0
- package/dist/util/to-array.d.ts.map +1 -0
- package/dist/util/to-array.js +14 -0
- package/dist/util/to-array.js.map +1 -0
- package/dist/utils/levenshtein.d.ts +3 -0
- package/dist/utils/levenshtein.d.ts.map +1 -0
- package/dist/utils/levenshtein.js +29 -0
- package/dist/utils/levenshtein.js.map +1 -0
- package/dist/validation/validators.d.ts +20 -0
- package/dist/validation/validators.d.ts.map +1 -0
- package/dist/validation/validators.js +138 -0
- package/dist/validation/validators.js.map +1 -0
- package/dist/versioning/compute-patches.d.ts +7 -0
- package/dist/versioning/compute-patches.d.ts.map +1 -0
- package/dist/versioning/compute-patches.js +62 -0
- package/dist/versioning/compute-patches.js.map +1 -0
- package/dist/versioning/index.d.ts +12 -0
- package/dist/versioning/index.d.ts.map +1 -0
- package/dist/versioning/index.js +7 -0
- package/dist/versioning/index.js.map +1 -0
- package/dist/versioning/promote-gate.d.ts +12 -0
- package/dist/versioning/promote-gate.d.ts.map +1 -0
- package/dist/versioning/promote-gate.js +166 -0
- package/dist/versioning/promote-gate.js.map +1 -0
- package/dist/versioning/rollback.d.ts +26 -0
- package/dist/versioning/rollback.d.ts.map +1 -0
- package/dist/versioning/rollback.js +67 -0
- package/dist/versioning/rollback.js.map +1 -0
- package/dist/versioning/structural-diff.d.ts +8 -0
- package/dist/versioning/structural-diff.d.ts.map +1 -0
- package/dist/versioning/structural-diff.js +287 -0
- package/dist/versioning/structural-diff.js.map +1 -0
- package/dist/versioning/types.d.ts +90 -0
- package/dist/versioning/types.d.ts.map +1 -0
- package/dist/versioning/types.js +2 -0
- package/dist/versioning/types.js.map +1 -0
- package/dist/visibility/evaluator.d.ts +12 -0
- package/dist/visibility/evaluator.d.ts.map +1 -0
- package/dist/visibility/evaluator.js +76 -0
- package/dist/visibility/evaluator.js.map +1 -0
- package/dist/watchers/engine.d.ts +19 -0
- package/dist/watchers/engine.d.ts.map +1 -0
- package/dist/watchers/engine.js +24 -0
- package/dist/watchers/engine.js.map +1 -0
- package/docs/consumer/README.md +44 -0
- package/docs/consumer/WHERE-TO-LOOK.md +94 -0
- package/docs/consumer/ai-context-api.md +195 -0
- package/docs/consumer/ai-context-custom-elements.md +249 -0
- package/docs/consumer/ai-context-patterns.md +254 -0
- package/docs/consumer/ai-context-primitives.md +839 -0
- package/docs/consumer/ai-context-runtime-semantics.md +1075 -0
- package/docs/consumer/ai-context.md +1374 -0
- package/docs/consumer/reference-doc.md +3201 -0
- package/docs/llms.txt +17 -0
- package/docs/wiki/compiled/README.md +33 -0
- package/docs/wiki/compiled/_gaps.md +52 -0
- package/docs/wiki/compiled/_index.md +354 -0
- package/docs/wiki/compiled/_inventory.md +2986 -0
- package/docs/wiki/compiled/_lint.md +66 -0
- package/docs/wiki/compiled/_unmapped.md +3 -0
- package/docs/wiki/compiled/action-apply-preset.md +63 -0
- package/docs/wiki/compiled/action-copy-clipboard.md +45 -0
- package/docs/wiki/compiled/action-drawer.md +50 -0
- package/docs/wiki/compiled/action-export.md +66 -0
- package/docs/wiki/compiled/action-fetch.md +87 -0
- package/docs/wiki/compiled/action-form-control.md +55 -0
- package/docs/wiki/compiled/action-login.md +71 -0
- package/docs/wiki/compiled/action-modal.md +61 -0
- package/docs/wiki/compiled/action-navigate.md +72 -0
- package/docs/wiki/compiled/action-open-url.md +38 -0
- package/docs/wiki/compiled/action-refresh-data-source.md +51 -0
- package/docs/wiki/compiled/action-selection.md +55 -0
- package/docs/wiki/compiled/action-set-locale.md +44 -0
- package/docs/wiki/compiled/action-set-state.md +61 -0
- package/docs/wiki/compiled/action-show-notification.md +65 -0
- package/docs/wiki/compiled/action-submit-form.md +69 -0
- package/docs/wiki/compiled/action-toggle-theme.md +50 -0
- package/docs/wiki/compiled/action-update-tokens.md +63 -0
- package/docs/wiki/compiled/action-upload-file.md +87 -0
- package/docs/wiki/compiled/antipattern-action-chain-no-stop.md +49 -0
- package/docs/wiki/compiled/antipattern-all-filter-wildcard.md +59 -0
- package/docs/wiki/compiled/antipattern-auth-domains-port.md +47 -0
- package/docs/wiki/compiled/antipattern-background-blobs-prop.md +62 -0
- package/docs/wiki/compiled/antipattern-background-css-token.md +53 -0
- package/docs/wiki/compiled/antipattern-checkbox-toggle-value.md +42 -0
- package/docs/wiki/compiled/antipattern-crud-id-collision.md +66 -0
- package/docs/wiki/compiled/antipattern-derive-server-pagination.md +58 -0
- package/docs/wiki/compiled/antipattern-element-variant-top-level.md +57 -0
- package/docs/wiki/compiled/antipattern-event-expression.md +55 -0
- package/docs/wiki/compiled/antipattern-input-type-name.md +43 -0
- package/docs/wiki/compiled/antipattern-mix-fetch-and-datasources.md +48 -0
- package/docs/wiki/compiled/antipattern-modal-drawer-visible.md +57 -0
- package/docs/wiki/compiled/antipattern-motion-entrance-token.md +53 -0
- package/docs/wiki/compiled/antipattern-overflow-hidden-with-shadow.md +50 -0
- package/docs/wiki/compiled/antipattern-required-if-equals.md +59 -0
- package/docs/wiki/compiled/antipattern-row-literal.md +70 -0
- package/docs/wiki/compiled/antipattern-row-template-capture.md +42 -0
- package/docs/wiki/compiled/antipattern-store-save-bypass.md +72 -0
- package/docs/wiki/compiled/antipattern-style-block-duplication.md +56 -0
- package/docs/wiki/compiled/antipattern-submit-form-in-tx-confirm.md +56 -0
- package/docs/wiki/compiled/cli-app-spec.md +53 -0
- package/docs/wiki/compiled/cli-config.md +46 -0
- package/docs/wiki/compiled/cli-contract.md +73 -0
- package/docs/wiki/compiled/cli-delete.md +37 -0
- package/docs/wiki/compiled/cli-docs.md +44 -0
- package/docs/wiki/compiled/cli-elements.md +39 -0
- package/docs/wiki/compiled/cli-existing-spec-edit-loop.md +24 -0
- package/docs/wiki/compiled/cli-history.md +38 -0
- package/docs/wiki/compiled/cli-lint.md +77 -0
- package/docs/wiki/compiled/cli-manifest.md +43 -0
- package/docs/wiki/compiled/cli-overview.md +77 -0
- package/docs/wiki/compiled/cli-patch.md +85 -0
- package/docs/wiki/compiled/cli-programmatic-api.md +73 -0
- package/docs/wiki/compiled/cli-pull.md +39 -0
- package/docs/wiki/compiled/cli-push.md +91 -0
- package/docs/wiki/compiled/cli-tokens.md +38 -0
- package/docs/wiki/compiled/cli-toon.md +44 -0
- package/docs/wiki/compiled/cli-validate.md +52 -0
- package/docs/wiki/compiled/cli-versioning-author.md +58 -0
- package/docs/wiki/compiled/concept-action-chains.md +65 -0
- package/docs/wiki/compiled/concept-action-middleware.md +55 -0
- package/docs/wiki/compiled/concept-animation-build-css.md +43 -0
- package/docs/wiki/compiled/concept-animation-build-rn.md +44 -0
- package/docs/wiki/compiled/concept-animation-caps.md +38 -0
- package/docs/wiki/compiled/concept-animation-cascade.md +89 -0
- package/docs/wiki/compiled/concept-animation-null-semantics.md +55 -0
- package/docs/wiki/compiled/concept-animation-recipes.md +67 -0
- package/docs/wiki/compiled/concept-animation-triggers.md +54 -0
- package/docs/wiki/compiled/concept-animations-engine.md +78 -0
- package/docs/wiki/compiled/concept-api-audit.md +67 -0
- package/docs/wiki/compiled/concept-api-auth.md +67 -0
- package/docs/wiki/compiled/concept-api-catalogs.md +44 -0
- package/docs/wiki/compiled/concept-api-crud-endpoint.md +90 -0
- package/docs/wiki/compiled/concept-api-endpoint-properties.md +40 -0
- package/docs/wiki/compiled/concept-api-endpoints-overview.md +57 -0
- package/docs/wiki/compiled/concept-api-handler-endpoint.md +56 -0
- package/docs/wiki/compiled/concept-api-login-body-contract.md +47 -0
- package/docs/wiki/compiled/concept-api-param-properties.md +44 -0
- package/docs/wiki/compiled/concept-api-public-endpoint.md +33 -0
- package/docs/wiki/compiled/concept-api-query-endpoint.md +53 -0
- package/docs/wiki/compiled/concept-api-scope-filter.md +59 -0
- package/docs/wiki/compiled/concept-api-spec.md +70 -0
- package/docs/wiki/compiled/concept-app-auto-state-paths.md +59 -0
- package/docs/wiki/compiled/concept-app-spec.md +89 -0
- package/docs/wiki/compiled/concept-auth-config.md +71 -0
- package/docs/wiki/compiled/concept-auth-domains.md +55 -0
- package/docs/wiki/compiled/concept-auth-security.md +58 -0
- package/docs/wiki/compiled/concept-auth-state-paths.md +48 -0
- package/docs/wiki/compiled/concept-auto-dark-mode.md +55 -0
- package/docs/wiki/compiled/concept-background-caps.md +42 -0
- package/docs/wiki/compiled/concept-background-layer-kinds.md +80 -0
- package/docs/wiki/compiled/concept-background-recipes.md +53 -0
- package/docs/wiki/compiled/concept-background-stack.md +55 -0
- package/docs/wiki/compiled/concept-blob-layer.md +92 -0
- package/docs/wiki/compiled/concept-blob-motion.md +58 -0
- package/docs/wiki/compiled/concept-blob-shapes-catalog.md +45 -0
- package/docs/wiki/compiled/concept-cli-tokens-inspect.md +38 -0
- package/docs/wiki/compiled/concept-component-variants.md +89 -0
- package/docs/wiki/compiled/concept-cross-tab-sync.md +35 -0
- package/docs/wiki/compiled/concept-css-vs-motion.md +46 -0
- package/docs/wiki/compiled/concept-custom-detection-pattern.md +49 -0
- package/docs/wiki/compiled/concept-custom-element-action-props.md +81 -0
- package/docs/wiki/compiled/concept-custom-element-black-box.md +56 -0
- package/docs/wiki/compiled/concept-custom-element-cache.md +39 -0
- package/docs/wiki/compiled/concept-custom-element-error-boundary.md +33 -0
- package/docs/wiki/compiled/concept-custom-element-prop-cascade.md +60 -0
- package/docs/wiki/compiled/concept-custom-element-repeat.md +53 -0
- package/docs/wiki/compiled/concept-custom-elements.md +71 -0
- package/docs/wiki/compiled/concept-custom-jwt-provider.md +63 -0
- package/docs/wiki/compiled/concept-customize-action.md +33 -0
- package/docs/wiki/compiled/concept-customize-cli-lint-rule.md +30 -0
- package/docs/wiki/compiled/concept-customize-expression-handler.md +30 -0
- package/docs/wiki/compiled/concept-customize-plugin.md +43 -0
- package/docs/wiki/compiled/concept-customize-server-middleware.md +36 -0
- package/docs/wiki/compiled/concept-customize-spec-store.md +42 -0
- package/docs/wiki/compiled/concept-customize-validator-rule.md +35 -0
- package/docs/wiki/compiled/concept-customize-versioned-store.md +37 -0
- package/docs/wiki/compiled/concept-data-sources-lifecycle.md +61 -0
- package/docs/wiki/compiled/concept-data-sources.md +96 -0
- package/docs/wiki/compiled/concept-debugging-runtime-pointers.md +45 -0
- package/docs/wiki/compiled/concept-derive-datasources-mount-order.md +72 -0
- package/docs/wiki/compiled/concept-derive.md +67 -0
- package/docs/wiki/compiled/concept-dna-seeds.md +79 -0
- package/docs/wiki/compiled/concept-editor-commit.md +37 -0
- package/docs/wiki/compiled/concept-editor-save.md +18 -0
- package/docs/wiki/compiled/concept-editor-sessions.md +23 -0
- package/docs/wiki/compiled/concept-element-children-slot.md +54 -0
- package/docs/wiki/compiled/concept-element-definition.md +60 -0
- package/docs/wiki/compiled/concept-element-key.md +56 -0
- package/docs/wiki/compiled/concept-element-prop-definition.md +54 -0
- package/docs/wiki/compiled/concept-element-properties.md +81 -0
- package/docs/wiki/compiled/concept-element-render-node.md +62 -0
- package/docs/wiki/compiled/concept-element-variants.md +67 -0
- package/docs/wiki/compiled/concept-environment-store.md +46 -0
- package/docs/wiki/compiled/concept-export-action.md +56 -0
- package/docs/wiki/compiled/concept-expression-contexts.md +56 -0
- package/docs/wiki/compiled/concept-expression-timing.md +56 -0
- package/docs/wiki/compiled/concept-fetch-interceptors.md +49 -0
- package/docs/wiki/compiled/concept-file-upload-overview.md +55 -0
- package/docs/wiki/compiled/concept-fire-and-forget.md +45 -0
- package/docs/wiki/compiled/concept-font-loading.md +52 -0
- package/docs/wiki/compiled/concept-form-state-paths.md +55 -0
- package/docs/wiki/compiled/concept-forms.md +89 -0
- package/docs/wiki/compiled/concept-identity-accent-application.md +48 -0
- package/docs/wiki/compiled/concept-identity-animations.md +48 -0
- package/docs/wiki/compiled/concept-identity-border-elevation-override.md +56 -0
- package/docs/wiki/compiled/concept-identity-color-scheme.md +74 -0
- package/docs/wiki/compiled/concept-identity-color-weight.md +50 -0
- package/docs/wiki/compiled/concept-identity-glass-rn.md +46 -0
- package/docs/wiki/compiled/concept-identity-gradients.md +56 -0
- package/docs/wiki/compiled/concept-identity-heading-color.md +40 -0
- package/docs/wiki/compiled/concept-identity-helpers.md +61 -0
- package/docs/wiki/compiled/concept-identity-icons.md +46 -0
- package/docs/wiki/compiled/concept-identity-images.md +36 -0
- package/docs/wiki/compiled/concept-identity-label-style.md +36 -0
- package/docs/wiki/compiled/concept-identity-overview.md +72 -0
- package/docs/wiki/compiled/concept-identity-radius-pattern.md +39 -0
- package/docs/wiki/compiled/concept-identity-surface.md +62 -0
- package/docs/wiki/compiled/concept-identity-text-decoration.md +48 -0
- package/docs/wiki/compiled/concept-identity-typography-hierarchy.md +40 -0
- package/docs/wiki/compiled/concept-initial-actions.md +82 -0
- package/docs/wiki/compiled/concept-interactive-states.md +72 -0
- package/docs/wiki/compiled/concept-keyframe-snapshot.md +52 -0
- package/docs/wiki/compiled/concept-layer-background.md +80 -0
- package/docs/wiki/compiled/concept-motion-field.md +77 -0
- package/docs/wiki/compiled/concept-mount-spec-runtime.md +47 -0
- package/docs/wiki/compiled/concept-mythik-renderer.md +76 -0
- package/docs/wiki/compiled/concept-navigation-dirty-guard.md +23 -0
- package/docs/wiki/compiled/concept-navigation.md +75 -0
- package/docs/wiki/compiled/concept-package-layout.md +35 -0
- package/docs/wiki/compiled/concept-path-references.md +53 -0
- package/docs/wiki/compiled/concept-pattern-primitives.md +54 -0
- package/docs/wiki/compiled/concept-preset-dropdown-pattern.md +52 -0
- package/docs/wiki/compiled/concept-presets.md +49 -0
- package/docs/wiki/compiled/concept-primitive-prop-schemas.md +53 -0
- package/docs/wiki/compiled/concept-primitives-overview.md +49 -0
- package/docs/wiki/compiled/concept-promote-gate.md +47 -0
- package/docs/wiki/compiled/concept-prop-cascade.md +76 -0
- package/docs/wiki/compiled/concept-public-package-names.md +33 -0
- package/docs/wiki/compiled/concept-query-envelope.md +55 -0
- package/docs/wiki/compiled/concept-reduced-motion.md +38 -0
- package/docs/wiki/compiled/concept-register-presets.md +44 -0
- package/docs/wiki/compiled/concept-render-error-visibility.md +57 -0
- package/docs/wiki/compiled/concept-repeat-grouped.md +72 -0
- package/docs/wiki/compiled/concept-repeat-selection.md +61 -0
- package/docs/wiki/compiled/concept-repeat.md +81 -0
- package/docs/wiki/compiled/concept-role-access.md +61 -0
- package/docs/wiki/compiled/concept-rollback.md +36 -0
- package/docs/wiki/compiled/concept-rules-catalog.md +49 -0
- package/docs/wiki/compiled/concept-screen-definition.md +51 -0
- package/docs/wiki/compiled/concept-screen-outlet.md +46 -0
- package/docs/wiki/compiled/concept-session-persistence.md +41 -0
- package/docs/wiki/compiled/concept-shape-animations.md +66 -0
- package/docs/wiki/compiled/concept-skeleton-auto.md +58 -0
- package/docs/wiki/compiled/concept-skeleton-manual.md +47 -0
- package/docs/wiki/compiled/concept-source-of-truth-references.md +37 -0
- package/docs/wiki/compiled/concept-source-reading-misleading.md +37 -0
- package/docs/wiki/compiled/concept-spatial-map-editor.md +22 -0
- package/docs/wiki/compiled/concept-spatial-map-zones.md +18 -0
- package/docs/wiki/compiled/concept-spec-engine.md +47 -0
- package/docs/wiki/compiled/concept-spec-store-interface.md +59 -0
- package/docs/wiki/compiled/concept-spec-store-layering.md +51 -0
- package/docs/wiki/compiled/concept-spec-stores-catalog.md +66 -0
- package/docs/wiki/compiled/concept-spec-structure.md +94 -0
- package/docs/wiki/compiled/concept-spec-types.md +76 -0
- package/docs/wiki/compiled/concept-state-change-animation.md +73 -0
- package/docs/wiki/compiled/concept-state-policies.md +44 -0
- package/docs/wiki/compiled/concept-state-protection.md +51 -0
- package/docs/wiki/compiled/concept-storage-adapter.md +69 -0
- package/docs/wiki/compiled/concept-storage-custom-names.md +69 -0
- package/docs/wiki/compiled/concept-storage-evolution.md +32 -0
- package/docs/wiki/compiled/concept-storage-idempotency.md +35 -0
- package/docs/wiki/compiled/concept-storage-overview.md +81 -0
- package/docs/wiki/compiled/concept-storage-postgres-jsonb.md +53 -0
- package/docs/wiki/compiled/concept-storage-postgres-triggers.md +60 -0
- package/docs/wiki/compiled/concept-storage-table-environments.md +40 -0
- package/docs/wiki/compiled/concept-storage-table-screens.md +44 -0
- package/docs/wiki/compiled/concept-storage-table-versions.md +50 -0
- package/docs/wiki/compiled/concept-storage-verification.md +57 -0
- package/docs/wiki/compiled/concept-template-children-marker.md +56 -0
- package/docs/wiki/compiled/concept-template-interpolation.md +60 -0
- package/docs/wiki/compiled/concept-templates-vs-variants.md +80 -0
- package/docs/wiki/compiled/concept-templates.md +93 -0
- package/docs/wiki/compiled/concept-token-categories.md +58 -0
- package/docs/wiki/compiled/concept-token-system.md +61 -0
- package/docs/wiki/compiled/concept-transaction-phase-timing.md +47 -0
- package/docs/wiki/compiled/concept-transaction-rollback.md +38 -0
- package/docs/wiki/compiled/concept-transaction-snapshot.md +37 -0
- package/docs/wiki/compiled/concept-transactions.md +72 -0
- package/docs/wiki/compiled/concept-validation-checks.md +63 -0
- package/docs/wiki/compiled/concept-validators-catalog.md +76 -0
- package/docs/wiki/compiled/concept-versioned-store.md +65 -0
- package/docs/wiki/compiled/concept-versioning-snapshots-patches.md +61 -0
- package/docs/wiki/compiled/concept-visibility.md +55 -0
- package/docs/wiki/compiled/concept-web-only-recipes.md +37 -0
- package/docs/wiki/compiled/concept-where-to-look.md +78 -0
- package/docs/wiki/compiled/expression-and-or-not.md +68 -0
- package/docs/wiki/compiled/expression-array.md +111 -0
- package/docs/wiki/compiled/expression-auth.md +83 -0
- package/docs/wiki/compiled/expression-binditem.md +52 -0
- package/docs/wiki/compiled/expression-bindstate.md +63 -0
- package/docs/wiki/compiled/expression-breakpoint.md +71 -0
- package/docs/wiki/compiled/expression-computed.md +52 -0
- package/docs/wiki/compiled/expression-cond.md +78 -0
- package/docs/wiki/compiled/expression-date.md +66 -0
- package/docs/wiki/compiled/expression-format.md +79 -0
- package/docs/wiki/compiled/expression-group.md +84 -0
- package/docs/wiki/compiled/expression-i18n.md +53 -0
- package/docs/wiki/compiled/expression-item-index.md +72 -0
- package/docs/wiki/compiled/expression-let-ref.md +87 -0
- package/docs/wiki/compiled/expression-math.md +67 -0
- package/docs/wiki/compiled/expression-platform.md +68 -0
- package/docs/wiki/compiled/expression-prop.md +89 -0
- package/docs/wiki/compiled/expression-selection.md +58 -0
- package/docs/wiki/compiled/expression-state.md +70 -0
- package/docs/wiki/compiled/expression-switch.md +68 -0
- package/docs/wiki/compiled/expression-template.md +71 -0
- package/docs/wiki/compiled/expression-token.md +67 -0
- package/docs/wiki/compiled/path-app-screens.md +55 -0
- package/docs/wiki/compiled/path-data-source-paths.md +44 -0
- package/docs/wiki/compiled/path-forms.md +38 -0
- package/docs/wiki/compiled/path-login.md +57 -0
- package/docs/wiki/compiled/path-navigation.md +62 -0
- package/docs/wiki/compiled/path-presets-available.md +44 -0
- package/docs/wiki/compiled/path-tokens.md +56 -0
- package/docs/wiki/compiled/path-tx-result-error.md +56 -0
- package/docs/wiki/compiled/path-ui-device.md +53 -0
- package/docs/wiki/compiled/path-ui-loading-error.md +40 -0
- package/docs/wiki/compiled/path-ui-modals-drawers.md +46 -0
- package/docs/wiki/compiled/path-ui-selected-row.md +92 -0
- package/docs/wiki/compiled/path-uploads.md +32 -0
- package/docs/wiki/compiled/pattern-cross-screen-data-flow.md +83 -0
- package/docs/wiki/compiled/pattern-fetch-vs-datasources.md +63 -0
- package/docs/wiki/compiled/pattern-file-upload-auto.md +61 -0
- package/docs/wiki/compiled/pattern-file-upload-manual.md +59 -0
- package/docs/wiki/compiled/pattern-form-validation-cross-field.md +58 -0
- package/docs/wiki/compiled/pattern-form-validation.md +58 -0
- package/docs/wiki/compiled/pattern-fullstack-coherence.md +49 -0
- package/docs/wiki/compiled/pattern-git-vs-db-versioning.md +55 -0
- package/docs/wiki/compiled/pattern-identity-aware-spec.md +70 -0
- package/docs/wiki/compiled/pattern-loading-content-empty.md +66 -0
- package/docs/wiki/compiled/pattern-login-body-template.md +47 -0
- package/docs/wiki/compiled/pattern-login-screen.md +83 -0
- package/docs/wiki/compiled/pattern-push-vs-patch.md +54 -0
- package/docs/wiki/compiled/pattern-reusable-components.md +67 -0
- package/docs/wiki/compiled/pattern-tx-create.md +76 -0
- package/docs/wiki/compiled/pattern-tx-delete.md +50 -0
- package/docs/wiki/compiled/pattern-tx-toggle.md +45 -0
- package/docs/wiki/compiled/pattern-tx-update.md +68 -0
- package/docs/wiki/compiled/primitive-accordion.md +46 -0
- package/docs/wiki/compiled/primitive-area-chart.md +35 -0
- package/docs/wiki/compiled/primitive-audio-player.md +27 -0
- package/docs/wiki/compiled/primitive-bar-chart.md +34 -0
- package/docs/wiki/compiled/primitive-box.md +58 -0
- package/docs/wiki/compiled/primitive-button.md +55 -0
- package/docs/wiki/compiled/primitive-camera.md +39 -0
- package/docs/wiki/compiled/primitive-checkbox.md +62 -0
- package/docs/wiki/compiled/primitive-divider.md +31 -0
- package/docs/wiki/compiled/primitive-drawer.md +44 -0
- package/docs/wiki/compiled/primitive-file-upload.md +65 -0
- package/docs/wiki/compiled/primitive-grid.md +48 -0
- package/docs/wiki/compiled/primitive-icon.md +106 -0
- package/docs/wiki/compiled/primitive-image.md +49 -0
- package/docs/wiki/compiled/primitive-input.md +81 -0
- package/docs/wiki/compiled/primitive-kanban-board.md +30 -0
- package/docs/wiki/compiled/primitive-line-chart.md +33 -0
- package/docs/wiki/compiled/primitive-list.md +34 -0
- package/docs/wiki/compiled/primitive-modal.md +51 -0
- package/docs/wiki/compiled/primitive-pie-chart.md +32 -0
- package/docs/wiki/compiled/primitive-screen-outlet.md +42 -0
- package/docs/wiki/compiled/primitive-screen.md +43 -0
- package/docs/wiki/compiled/primitive-scroll.md +33 -0
- package/docs/wiki/compiled/primitive-select.md +76 -0
- package/docs/wiki/compiled/primitive-signature.md +40 -0
- package/docs/wiki/compiled/primitive-skeleton.md +48 -0
- package/docs/wiki/compiled/primitive-slider.md +47 -0
- package/docs/wiki/compiled/primitive-spacer.md +33 -0
- package/docs/wiki/compiled/primitive-spatial-map.md +26 -0
- package/docs/wiki/compiled/primitive-stack.md +46 -0
- package/docs/wiki/compiled/primitive-table.md +127 -0
- package/docs/wiki/compiled/primitive-tabs.md +52 -0
- package/docs/wiki/compiled/primitive-text.md +59 -0
- package/docs/wiki/compiled/primitive-textarea.md +44 -0
- package/docs/wiki/compiled/primitive-toast-container.md +44 -0
- package/docs/wiki/compiled/primitive-toggle.md +46 -0
- package/docs/wiki/compiled/primitive-touchable.md +40 -0
- package/docs/wiki/compiled/primitive-wizard.md +43 -0
- package/package.json +58 -8
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type StateStore } from './state/store.js';
|
|
2
|
+
import { type Resolver } from './expressions/resolver.js';
|
|
3
|
+
import { type RenderEngine } from './renderer/engine.js';
|
|
4
|
+
import { type PluginLoader } from './plugins/loader.js';
|
|
5
|
+
import { type ElementRegistry, type ElementDefinition } from './elements/composer.js';
|
|
6
|
+
import { type ValidationError } from './security/spec-validator.js';
|
|
7
|
+
import { type UrlGuard } from './security/url-whitelist.js';
|
|
8
|
+
import { type StateGuard } from './security/state-protection.js';
|
|
9
|
+
import { type ProtectionRegistry } from './security/protection-registry.js';
|
|
10
|
+
import { type RateLimiter } from './security/rate-limiter.js';
|
|
11
|
+
import type { Spec } from './types.js';
|
|
12
|
+
export interface SecurityConfig {
|
|
13
|
+
/** Allowed domains for fetch actions. Empty = allow all. */
|
|
14
|
+
allowedDomains?: string[];
|
|
15
|
+
/** State paths that specs cannot write to. */
|
|
16
|
+
protectedPaths?: string[];
|
|
17
|
+
/** Max actions per second before rate limiting kicks in. Default: 100. */
|
|
18
|
+
maxActionsPerSecond?: number;
|
|
19
|
+
/** Validate spec structure before rendering. Default: true. */
|
|
20
|
+
validateSpecs?: boolean;
|
|
21
|
+
/** Expose detailed error info in UI. Default: true (dev). Set false for production. */
|
|
22
|
+
exposeErrors?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface MythikConfig {
|
|
25
|
+
initialState?: Record<string, unknown>;
|
|
26
|
+
computedFunctions?: Record<string, (args: Record<string, unknown>) => unknown>;
|
|
27
|
+
tokens?: Record<string, unknown>;
|
|
28
|
+
locale?: string;
|
|
29
|
+
translations?: Record<string, Record<string, string>>;
|
|
30
|
+
elements?: ElementDefinition[];
|
|
31
|
+
security?: SecurityConfig;
|
|
32
|
+
}
|
|
33
|
+
export interface MythikInstance {
|
|
34
|
+
store: StateStore;
|
|
35
|
+
resolver: Resolver;
|
|
36
|
+
engine: RenderEngine;
|
|
37
|
+
plugins: PluginLoader;
|
|
38
|
+
elements: ElementRegistry;
|
|
39
|
+
security: {
|
|
40
|
+
urlGuard: UrlGuard;
|
|
41
|
+
stateGuard: StateGuard;
|
|
42
|
+
rateLimiter: RateLimiter;
|
|
43
|
+
validateSpec: (spec: Spec) => {
|
|
44
|
+
valid: boolean;
|
|
45
|
+
errors: ValidationError[];
|
|
46
|
+
};
|
|
47
|
+
exposeErrors: boolean;
|
|
48
|
+
};
|
|
49
|
+
/** Internal — used by mountSpecRuntime to contribute derive-protected paths via RAII. */
|
|
50
|
+
protectionRegistry: ProtectionRegistry;
|
|
51
|
+
applyPlugins: () => void;
|
|
52
|
+
/** Hot-swap tokens at runtime. Resolves DNA + defaults + overrides, rebuilds resolver & engine, bumps state counter to trigger re-render. */
|
|
53
|
+
updateTokens: (tokens: Record<string, unknown>) => void;
|
|
54
|
+
}
|
|
55
|
+
export declare function createMythik(config?: MythikConfig): MythikInstance;
|
|
56
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAyB,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACtG,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOvC,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uFAAuF;IACvF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE;QACR,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,eAAe,EAAE,CAAA;SAAE,CAAC;QAC5E,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,yFAAyF;IACzF,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,6IAA6I;IAC7I,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACzD;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,cAAc,CA2QtE"}
|
package/dist/factory.js
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { createStateStore } from './state/store.js';
|
|
2
|
+
import { createResolver } from './expressions/resolver.js';
|
|
3
|
+
import { createPrimitiveRegistry } from './renderer/registry.js';
|
|
4
|
+
import { createRenderEngine } from './renderer/engine.js';
|
|
5
|
+
import { createPluginLoader } from './plugins/loader.js';
|
|
6
|
+
import { createElementRegistry } from './elements/composer.js';
|
|
7
|
+
import { validateSpec } from './security/spec-validator.js';
|
|
8
|
+
import { createUrlGuard } from './security/url-whitelist.js';
|
|
9
|
+
import { createStateGuard } from './security/state-protection.js';
|
|
10
|
+
import { createProtectionRegistry } from './security/protection-registry.js';
|
|
11
|
+
import { createRateLimiter } from './security/rate-limiter.js';
|
|
12
|
+
import { resolveDeepTokens, deepMergeTokens } from './design/deep-tokens.js';
|
|
13
|
+
import { resolveSchemeColors, resolveColorWeight } from './design/identity/index.js';
|
|
14
|
+
import { COLORED_SURFACE_DEFAULTS } from './design/identity/index.js';
|
|
15
|
+
export function createMythik(config = {}) {
|
|
16
|
+
const store = createStateStore(config.initialState ?? {});
|
|
17
|
+
// Seed `/tokens/raw` from initial config.tokens so consumers reading this
|
|
18
|
+
// path (e.g. MythikRenderer's v2 LayerBackground root mount) see the
|
|
19
|
+
// starting tokens before any updateTokens call. Later updateTokens calls
|
|
20
|
+
// deep-merge on top of this seed.
|
|
21
|
+
if (config.tokens) {
|
|
22
|
+
store.set('/tokens/raw', config.tokens);
|
|
23
|
+
}
|
|
24
|
+
const plugins = createPluginLoader();
|
|
25
|
+
const primitiveRegistry = createPrimitiveRegistry();
|
|
26
|
+
const elements = createElementRegistry();
|
|
27
|
+
// Security
|
|
28
|
+
const secConfig = config.security ?? {};
|
|
29
|
+
const urlGuard = createUrlGuard(secConfig.allowedDomains);
|
|
30
|
+
const protectionRegistry = createProtectionRegistry({
|
|
31
|
+
defaultPaths: ['/tx/*', '/ui/forms/*', '/auth/*'],
|
|
32
|
+
});
|
|
33
|
+
// User-provided protected paths are a permanent contribution (release token discarded).
|
|
34
|
+
if (secConfig.protectedPaths && secConfig.protectedPaths.length > 0) {
|
|
35
|
+
protectionRegistry.contribute(secConfig.protectedPaths);
|
|
36
|
+
}
|
|
37
|
+
const stateGuard = createStateGuard(() => protectionRegistry.allPaths());
|
|
38
|
+
const rateLimiter = createRateLimiter({ maxActionsPerSecond: secConfig.maxActionsPerSecond ?? 100 });
|
|
39
|
+
const shouldValidate = secConfig.validateSpecs !== false; // Default true
|
|
40
|
+
const exposeErrors = secConfig.exposeErrors !== false; // Default true (dev mode)
|
|
41
|
+
// Register initial element definitions
|
|
42
|
+
if (config.elements) {
|
|
43
|
+
for (const def of config.elements) {
|
|
44
|
+
elements.register(def);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
let resolver;
|
|
48
|
+
let engine;
|
|
49
|
+
// Resolve deep tokens (DNA + defaults + overrides) at initialization
|
|
50
|
+
let resolvedTokens = resolveDeepTokens(config.tokens);
|
|
51
|
+
// Persist resolved tokens to the store so consumers (e.g. MythikRenderer's
|
|
52
|
+
// v2 LayerBackground root mount) can read the fully-resolved tree
|
|
53
|
+
// including DNA-derived colors. Updated on every updateTokens call below.
|
|
54
|
+
store.set('/tokens/resolved', resolvedTokens);
|
|
55
|
+
let currentRawTokens = config.tokens ?? {};
|
|
56
|
+
/** Compute Phase 3 color values and inject into resolvedTokens for $token access */
|
|
57
|
+
function injectColorTokens(tokens) {
|
|
58
|
+
const colors = tokens.colors;
|
|
59
|
+
const identity = tokens.identity;
|
|
60
|
+
if (!colors)
|
|
61
|
+
return;
|
|
62
|
+
const scheme = identity?.colorScheme ?? 'light-surface';
|
|
63
|
+
const weight = identity?.colorWeight ?? 'monochrome';
|
|
64
|
+
const fullColors = {
|
|
65
|
+
primary: colors.primary, primaryLight: colors.primaryLight, primaryDark: colors.primaryDark,
|
|
66
|
+
accent: colors.accent, accentLight: colors.accentLight,
|
|
67
|
+
surface: colors.surface, background: colors.background,
|
|
68
|
+
text: colors.text, textMuted: colors.textMuted, border: colors.border,
|
|
69
|
+
error: colors.error, success: colors.success, warning: colors.warning,
|
|
70
|
+
};
|
|
71
|
+
const darkColors = tokens.modes?.dark?.colors;
|
|
72
|
+
const layers = scheme === 'colored-surface'
|
|
73
|
+
? {
|
|
74
|
+
background: identity?.coloredSurfaceLayers?.background ?? COLORED_SURFACE_DEFAULTS.background,
|
|
75
|
+
surface: identity?.coloredSurfaceLayers?.surface ?? COLORED_SURFACE_DEFAULTS.surface,
|
|
76
|
+
primitive: identity?.coloredSurfaceLayers?.primitive ?? COLORED_SURFACE_DEFAULTS.primitive,
|
|
77
|
+
}
|
|
78
|
+
: undefined;
|
|
79
|
+
const schemeColors = resolveSchemeColors(scheme, fullColors, darkColors, layers);
|
|
80
|
+
const cwColors = { primary: schemeColors.primary, accent: schemeColors.accent, surface: schemeColors.surface, background: schemeColors.background, text: schemeColors.text, border: schemeColors.border };
|
|
81
|
+
const cwDark = darkColors ? { primary: darkColors.primary, accent: darkColors.accent, surface: darkColors.surface, background: darkColors.background, text: darkColors.text, border: darkColors.border } : undefined;
|
|
82
|
+
const colorWeightResult = resolveColorWeight(weight, cwColors, cwDark);
|
|
83
|
+
tokens.colorWeight = colorWeightResult;
|
|
84
|
+
tokens.schemeColors = schemeColors;
|
|
85
|
+
// Plan 3 Task 21 — `tokens.backgroundCSS` injection removed along with
|
|
86
|
+
// the legacy resolveBackgroundCSS. Background rendering is consumer-owned
|
|
87
|
+
// now: MythikRenderer mounts <BackgroundStack> from identity.background
|
|
88
|
+
// (a LayerBackground). Nothing in the framework reads `tokens.backgroundCSS`
|
|
89
|
+
// anymore (verified via grep at Task 21 migration time).
|
|
90
|
+
}
|
|
91
|
+
injectColorTokens(resolvedTokens);
|
|
92
|
+
// Inject icon renderer if registered via plugins.setIconRenderer()
|
|
93
|
+
function injectIconRenderer(tokens) {
|
|
94
|
+
const renderer = plugins.getIconRenderer();
|
|
95
|
+
if (renderer)
|
|
96
|
+
tokens._iconRenderer = renderer;
|
|
97
|
+
}
|
|
98
|
+
injectIconRenderer(resolvedTokens);
|
|
99
|
+
function buildResolver() {
|
|
100
|
+
return createResolver({
|
|
101
|
+
store,
|
|
102
|
+
computedFunctions: config.computedFunctions,
|
|
103
|
+
tokens: resolvedTokens,
|
|
104
|
+
locale: config.locale,
|
|
105
|
+
translations: config.translations,
|
|
106
|
+
extraExpressionHandlers: plugins.getExpressionHandlers(),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
function buildEngine() {
|
|
110
|
+
return createRenderEngine({
|
|
111
|
+
resolver,
|
|
112
|
+
primitiveRegistry,
|
|
113
|
+
tokens: resolvedTokens,
|
|
114
|
+
elementRegistry: elements,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
resolver = buildResolver();
|
|
118
|
+
engine = buildEngine();
|
|
119
|
+
// Wrap engine.render with spec validation (warnings only — engine isolates errors per element)
|
|
120
|
+
const originalEngine = engine;
|
|
121
|
+
let lastValidatedSpec = null;
|
|
122
|
+
const secureEngine = {
|
|
123
|
+
render(spec, changedPaths) {
|
|
124
|
+
if (shouldValidate && spec !== lastValidatedSpec) {
|
|
125
|
+
lastValidatedSpec = spec;
|
|
126
|
+
const result = validateSpec(spec, { primitiveRegistry, elementRegistry: elements });
|
|
127
|
+
if (!result.valid) {
|
|
128
|
+
console.warn(`Spec validation warnings: ${result.errors.map((e) => e.message).join('; ')}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return originalEngine.render(spec, changedPaths);
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
engine = secureEngine;
|
|
135
|
+
function updateTokens(rawTokens) {
|
|
136
|
+
// _replace: true bypasses deep merge — used by reset to fully replace token state
|
|
137
|
+
if (rawTokens._replace) {
|
|
138
|
+
const { _replace, ...tokens } = rawTokens;
|
|
139
|
+
currentRawTokens = tokens;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Deep merge with previously-applied raw tokens — enables partial updates
|
|
143
|
+
currentRawTokens = deepMergeTokens(currentRawTokens, rawTokens);
|
|
144
|
+
}
|
|
145
|
+
// Normalize DNA seeds: if numeric values > 1, assume 0-100 scale and convert to 0-1
|
|
146
|
+
const normalized = { ...currentRawTokens };
|
|
147
|
+
if (normalized.dna && typeof normalized.dna === 'object') {
|
|
148
|
+
const dna = { ...normalized.dna };
|
|
149
|
+
const numericSeeds = ['roundness', 'density', 'depth', 'formality'];
|
|
150
|
+
for (const key of numericSeeds) {
|
|
151
|
+
if (typeof dna[key] === 'number' && dna[key] > 1) {
|
|
152
|
+
dna[key] = dna[key] / 100;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
normalized.dna = dna;
|
|
156
|
+
}
|
|
157
|
+
resolvedTokens = resolveDeepTokens(normalized);
|
|
158
|
+
injectColorTokens(resolvedTokens);
|
|
159
|
+
injectIconRenderer(resolvedTokens);
|
|
160
|
+
resolver = buildResolver();
|
|
161
|
+
const rawEngine = buildEngine();
|
|
162
|
+
lastValidatedSpec = null;
|
|
163
|
+
engine = {
|
|
164
|
+
render(spec, changedPaths) {
|
|
165
|
+
if (shouldValidate && spec !== lastValidatedSpec) {
|
|
166
|
+
lastValidatedSpec = spec;
|
|
167
|
+
const result = validateSpec(spec, { primitiveRegistry, elementRegistry: elements });
|
|
168
|
+
if (!result.valid) {
|
|
169
|
+
console.warn(`Spec validation warnings: ${result.errors.map((e) => e.message).join("; ")}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return rawEngine.render(spec, changedPaths);
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
// Persist raw config for export/inspection
|
|
176
|
+
store.set('/tokens/raw', currentRawTokens);
|
|
177
|
+
// Persist resolved tree so consumers have DNA-derived colors + full
|
|
178
|
+
// merged identity at a single read path.
|
|
179
|
+
store.set('/tokens/resolved', resolvedTokens);
|
|
180
|
+
// Bump state counter to trigger React re-render
|
|
181
|
+
const currentVersion = store.get('/internal/tokenVersion') ?? 0;
|
|
182
|
+
store.set('/internal/tokenVersion', currentVersion + 1);
|
|
183
|
+
}
|
|
184
|
+
// Register updateTokens as a framework action so specs can call it
|
|
185
|
+
plugins.registerAction({
|
|
186
|
+
name: 'updateTokens',
|
|
187
|
+
handler: (params) => { updateTokens(params); },
|
|
188
|
+
});
|
|
189
|
+
function applyPlugins() {
|
|
190
|
+
for (const [type, renderer] of plugins.getPrimitives()) {
|
|
191
|
+
if (!primitiveRegistry.has(type)) {
|
|
192
|
+
primitiveRegistry.register(type, renderer);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Layer 3 — register element definitions staged via plugins.registerElement.
|
|
196
|
+
// Skip any already in the registry (e.g. from config.elements) to keep applyPlugins idempotent.
|
|
197
|
+
for (const def of plugins.getElements()) {
|
|
198
|
+
if (!elements.has(def.type)) {
|
|
199
|
+
elements.register(def);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
injectIconRenderer(resolvedTokens);
|
|
203
|
+
store.set('/tokens/resolved', resolvedTokens);
|
|
204
|
+
resolver = buildResolver();
|
|
205
|
+
const rawEngine = buildEngine();
|
|
206
|
+
lastValidatedSpec = null;
|
|
207
|
+
engine = {
|
|
208
|
+
render(spec, changedPaths) {
|
|
209
|
+
if (shouldValidate && spec !== lastValidatedSpec) {
|
|
210
|
+
lastValidatedSpec = spec;
|
|
211
|
+
const result = validateSpec(spec, { primitiveRegistry, elementRegistry: elements });
|
|
212
|
+
if (!result.valid) {
|
|
213
|
+
console.warn(`Spec validation warnings: ${result.errors.map((e) => e.message).join("; ")}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return rawEngine.render(spec, changedPaths);
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
// Wrap registerPresets to bind store + updateTokens (not exposed in PluginLoader interface)
|
|
221
|
+
const originalRegisterPresets = plugins.registerPresets.bind(plugins);
|
|
222
|
+
plugins.registerPresets = (newPresets) => {
|
|
223
|
+
originalRegisterPresets(newPresets);
|
|
224
|
+
// Write dropdown options to state for $state consumption
|
|
225
|
+
const options = [
|
|
226
|
+
{ value: 'custom', label: 'Custom' },
|
|
227
|
+
...plugins.getPresets().map(p => ({ value: p.id, label: p.name })),
|
|
228
|
+
];
|
|
229
|
+
store.set('/presets/available', options);
|
|
230
|
+
// Auto-register applyPreset action if not yet registered
|
|
231
|
+
if (!plugins.getActions().has('applyPreset')) {
|
|
232
|
+
plugins.registerAction({
|
|
233
|
+
name: 'applyPreset',
|
|
234
|
+
handler: (params) => {
|
|
235
|
+
if (typeof params.preset !== 'string')
|
|
236
|
+
throw new Error('applyPreset requires a "preset" string parameter');
|
|
237
|
+
if (params.preset === 'custom')
|
|
238
|
+
return; // "Custom" is not a real preset — no-op
|
|
239
|
+
const preset = plugins.getPreset(params.preset);
|
|
240
|
+
if (!preset)
|
|
241
|
+
throw new Error(`Unknown preset: "${params.preset}"`);
|
|
242
|
+
updateTokens({ _replace: true, dna: preset.tokens.dna, identity: preset.tokens.identity });
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
return {
|
|
248
|
+
store,
|
|
249
|
+
get resolver() { return resolver; },
|
|
250
|
+
get engine() { return engine; },
|
|
251
|
+
plugins,
|
|
252
|
+
elements,
|
|
253
|
+
security: {
|
|
254
|
+
urlGuard,
|
|
255
|
+
stateGuard,
|
|
256
|
+
rateLimiter,
|
|
257
|
+
exposeErrors,
|
|
258
|
+
validateSpec: (spec) => validateSpec(spec, { primitiveRegistry, elementRegistry: elements }),
|
|
259
|
+
},
|
|
260
|
+
protectionRegistry,
|
|
261
|
+
applyPlugins,
|
|
262
|
+
updateTokens,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FrameworkFetchConfig, FrameworkFetch } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a scoped fetch wrapper with an interceptor chain.
|
|
4
|
+
*
|
|
5
|
+
* This is Mythik's internal fetch — used by the dispatcher (fetch/submitForm actions)
|
|
6
|
+
* and dataSources. It does NOT monkey-patch globalThis.fetch.
|
|
7
|
+
*
|
|
8
|
+
* Interceptors run in order:
|
|
9
|
+
* request interceptors (modify options) → baseFetch → response interceptors (transform response)
|
|
10
|
+
*/
|
|
11
|
+
export declare function createFrameworkFetch(config?: FrameworkFetchConfig): FrameworkFetch;
|
|
12
|
+
//# sourceMappingURL=framework-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework-fetch.d.ts","sourceRoot":"","sources":["../../src/fetch/framework-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,oBAAyB,GAAG,cAAc,CAgCtF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a scoped fetch wrapper with an interceptor chain.
|
|
3
|
+
*
|
|
4
|
+
* This is Mythik's internal fetch — used by the dispatcher (fetch/submitForm actions)
|
|
5
|
+
* and dataSources. It does NOT monkey-patch globalThis.fetch.
|
|
6
|
+
*
|
|
7
|
+
* Interceptors run in order:
|
|
8
|
+
* request interceptors (modify options) → baseFetch → response interceptors (transform response)
|
|
9
|
+
*/
|
|
10
|
+
export function createFrameworkFetch(config = {}) {
|
|
11
|
+
const baseFetch = config.baseFetch ?? globalThis.fetch?.bind(globalThis);
|
|
12
|
+
const interceptors = [...(config.interceptors ?? [])];
|
|
13
|
+
async function fetch(url, options) {
|
|
14
|
+
let opts = options ?? {};
|
|
15
|
+
// Run request interceptors in order
|
|
16
|
+
for (const interceptor of interceptors) {
|
|
17
|
+
if (interceptor.request) {
|
|
18
|
+
opts = await interceptor.request(url, opts);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Execute the actual fetch
|
|
22
|
+
let response = await baseFetch(url, opts);
|
|
23
|
+
// Run response interceptors in order
|
|
24
|
+
for (const interceptor of interceptors) {
|
|
25
|
+
if (interceptor.response) {
|
|
26
|
+
response = await interceptor.response(response, { url, options: opts });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return response;
|
|
30
|
+
}
|
|
31
|
+
function addInterceptor(interceptor) {
|
|
32
|
+
interceptors.push(interceptor);
|
|
33
|
+
}
|
|
34
|
+
return { fetch, addInterceptor };
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=framework-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framework-fetch.js","sourceRoot":"","sources":["../../src/fetch/framework-fetch.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA+B,EAAE;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,YAAY,GAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAE1E,KAAK,UAAU,KAAK,CAAC,GAAW,EAAE,OAAqB;QACrD,IAAI,IAAI,GAAgB,OAAO,IAAI,EAAE,CAAC;QAEtC,oCAAoC;QACpC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE1C,qCAAqC;QACrC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzB,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS,cAAc,CAAC,WAA6B;QACnD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FetchInterceptor } from '../types.js';
|
|
2
|
+
export interface AuthInterceptorConfig {
|
|
3
|
+
/** Returns current access token or null. Called on every request. */
|
|
4
|
+
getToken: () => string | null;
|
|
5
|
+
/** Domains where Bearer token is auto-injected. Uses exact + subdomain matching. */
|
|
6
|
+
authDomains: string[];
|
|
7
|
+
/** Optional: called on 401 response to trigger refresh + retry. */
|
|
8
|
+
onUnauthorized?: (url: string, options: RequestInit) => Promise<Response | null>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Auth fetch interceptor — injects Bearer token for authorized domains.
|
|
12
|
+
*
|
|
13
|
+
* SECURITY:
|
|
14
|
+
* - Only injects headers for URLs matching authDomains
|
|
15
|
+
* - Fetch to non-authorized domain → goes without auth headers
|
|
16
|
+
* - Token obtained from closure getter, never from state
|
|
17
|
+
*/
|
|
18
|
+
export declare function createAuthInterceptor(config: AuthInterceptorConfig): FetchInterceptor;
|
|
19
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/fetch/interceptors/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,oFAAoF;IACpF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CAClF;AAmCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,gBAAgB,CA0BrF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if a URL matches any of the authorized domains.
|
|
3
|
+
* Matches exact hostname or subdomain (e.g., "supabase.co" matches "myproject.supabase.co").
|
|
4
|
+
* Does NOT match partial names (e.g., "api.com" does NOT match "notapi.com").
|
|
5
|
+
*/
|
|
6
|
+
function matchesDomain(url, authDomains) {
|
|
7
|
+
if (!url.startsWith('http://') && !url.startsWith('https://'))
|
|
8
|
+
return false;
|
|
9
|
+
try {
|
|
10
|
+
const parsed = new URL(url);
|
|
11
|
+
return authDomains.some((domain) => {
|
|
12
|
+
return parsed.hostname === domain || parsed.hostname.endsWith('.' + domain);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Normalize HeadersInit (Headers instance, array, or plain object) to a plain Record.
|
|
21
|
+
* Headers instances are not enumerable via spread — must iterate explicitly.
|
|
22
|
+
*/
|
|
23
|
+
function normalizeHeaders(h) {
|
|
24
|
+
if (!h)
|
|
25
|
+
return {};
|
|
26
|
+
if (h instanceof Headers) {
|
|
27
|
+
const obj = {};
|
|
28
|
+
h.forEach((v, k) => { obj[k] = v; });
|
|
29
|
+
return obj;
|
|
30
|
+
}
|
|
31
|
+
if (Array.isArray(h))
|
|
32
|
+
return Object.fromEntries(h);
|
|
33
|
+
return { ...h };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Auth fetch interceptor — injects Bearer token for authorized domains.
|
|
37
|
+
*
|
|
38
|
+
* SECURITY:
|
|
39
|
+
* - Only injects headers for URLs matching authDomains
|
|
40
|
+
* - Fetch to non-authorized domain → goes without auth headers
|
|
41
|
+
* - Token obtained from closure getter, never from state
|
|
42
|
+
*/
|
|
43
|
+
export function createAuthInterceptor(config) {
|
|
44
|
+
const { getToken, authDomains, onUnauthorized } = config;
|
|
45
|
+
return {
|
|
46
|
+
name: 'auth',
|
|
47
|
+
request(url, options) {
|
|
48
|
+
const token = getToken();
|
|
49
|
+
if (!token || !matchesDomain(url, authDomains)) {
|
|
50
|
+
return options;
|
|
51
|
+
}
|
|
52
|
+
const headers = normalizeHeaders(options.headers);
|
|
53
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
54
|
+
return { ...options, headers };
|
|
55
|
+
},
|
|
56
|
+
async response(response, request) {
|
|
57
|
+
if (response.status === 401 && onUnauthorized && matchesDomain(request.url, authDomains)) {
|
|
58
|
+
const retryResponse = await onUnauthorized(request.url, request.options);
|
|
59
|
+
if (retryResponse)
|
|
60
|
+
return retryResponse;
|
|
61
|
+
}
|
|
62
|
+
return response;
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/fetch/interceptors/auth.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,WAAqB;IACvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,OAAO,MAAM,CAAC,QAAQ,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,CAA0B;IAClD,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;QACzB,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,GAAI,CAA4B,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,MAAM;QAEZ,OAAO,CAAC,GAAW,EAAE,OAAoB;YACvC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;YAE7C,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAA8C;YAC/E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,cAAc,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;gBACzF,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,aAAa;oBAAE,OAAO,aAAa,CAAC;YAC1C,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FetchInterceptor } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Logging interceptor — logs request/response details to console.
|
|
4
|
+
* Redacts sensitive query parameters (token, password, secret, key).
|
|
5
|
+
* Enabled declaratively: { "interceptors": { "logging": true } }
|
|
6
|
+
*/
|
|
7
|
+
export declare function createLoggingInterceptor(): FetchInterceptor;
|
|
8
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../../src/fetch/interceptors/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqBpD;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,CAiB3D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const SENSITIVE_PARAMS = new Set(['token', 'access_token', 'refresh_token', 'password', 'secret', 'key', 'apikey', 'api_key']);
|
|
2
|
+
/** Redact sensitive query parameters from URL for safe logging. */
|
|
3
|
+
function redactUrl(url) {
|
|
4
|
+
try {
|
|
5
|
+
const parsed = new URL(url);
|
|
6
|
+
let redacted = false;
|
|
7
|
+
for (const key of parsed.searchParams.keys()) {
|
|
8
|
+
if (SENSITIVE_PARAMS.has(key.toLowerCase())) {
|
|
9
|
+
parsed.searchParams.set(key, '[REDACTED]');
|
|
10
|
+
redacted = true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return redacted ? parsed.toString() : url;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return url;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Logging interceptor — logs request/response details to console.
|
|
21
|
+
* Redacts sensitive query parameters (token, password, secret, key).
|
|
22
|
+
* Enabled declaratively: { "interceptors": { "logging": true } }
|
|
23
|
+
*/
|
|
24
|
+
export function createLoggingInterceptor() {
|
|
25
|
+
return {
|
|
26
|
+
name: 'logging',
|
|
27
|
+
request(url, options) {
|
|
28
|
+
const method = options.method ?? 'GET';
|
|
29
|
+
console.log(`[Mythik Fetch] ${method} ${redactUrl(url)}`);
|
|
30
|
+
return options;
|
|
31
|
+
},
|
|
32
|
+
response(response, request) {
|
|
33
|
+
const method = request.options.method ?? 'GET';
|
|
34
|
+
const status = response.status;
|
|
35
|
+
console.log(`[Mythik Fetch] ${method} ${redactUrl(request.url)} → ${status}`);
|
|
36
|
+
return response;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../src/fetch/interceptors/logging.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE/H,mEAAmE;AACnE,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gBAC3C,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE,SAAS;QAEf,OAAO,CAAC,GAAW,EAAE,OAAoB;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,QAAQ,CAAC,QAAkB,EAAE,OAA8C;YACzE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;YAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;YAC9E,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FetchInterceptor } from '../types.js';
|
|
2
|
+
export interface RetryInterceptorConfig {
|
|
3
|
+
/** Max retry attempts. Default: 2. */
|
|
4
|
+
maxRetries?: number;
|
|
5
|
+
/** HTTP statuses that trigger retry. Default: [502, 503, 504]. */
|
|
6
|
+
statuses?: number[];
|
|
7
|
+
/** Base delay in ms between retries (doubles each attempt). Default: 1000. */
|
|
8
|
+
baseDelay?: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Retry interceptor — retries on transient server errors with exponential backoff.
|
|
12
|
+
* Enabled declaratively: { "interceptors": { "retryOnError": { "maxRetries": 2, "statuses": [502, 503] } } }
|
|
13
|
+
*
|
|
14
|
+
* Each response interceptor invocation manages its own retry count — no shared state
|
|
15
|
+
* between concurrent requests (fixes key collision issue).
|
|
16
|
+
*/
|
|
17
|
+
export declare function createRetryInterceptor(config?: RetryInterceptorConfig,
|
|
18
|
+
/** The fetch function to use for retries. Must be provided externally. */
|
|
19
|
+
doFetch?: (url: string, options: RequestInit) => Promise<Response>): FetchInterceptor;
|
|
20
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/fetch/interceptors/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,sBAA2B;AACnC,0EAA0E;AAC1E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,GACjE,gBAAgB,CA4BlB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry interceptor — retries on transient server errors with exponential backoff.
|
|
3
|
+
* Enabled declaratively: { "interceptors": { "retryOnError": { "maxRetries": 2, "statuses": [502, 503] } } }
|
|
4
|
+
*
|
|
5
|
+
* Each response interceptor invocation manages its own retry count — no shared state
|
|
6
|
+
* between concurrent requests (fixes key collision issue).
|
|
7
|
+
*/
|
|
8
|
+
export function createRetryInterceptor(config = {},
|
|
9
|
+
/** The fetch function to use for retries. Must be provided externally. */
|
|
10
|
+
doFetch) {
|
|
11
|
+
const maxRetries = config.maxRetries ?? 2;
|
|
12
|
+
const retryStatuses = new Set(config.statuses ?? [502, 503, 504]);
|
|
13
|
+
const baseDelay = config.baseDelay ?? 1000;
|
|
14
|
+
return {
|
|
15
|
+
name: 'retry',
|
|
16
|
+
async response(response, request) {
|
|
17
|
+
if (!retryStatuses.has(response.status) || !doFetch) {
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
// Retry loop — scoped to this single request invocation
|
|
21
|
+
let lastResponse = response;
|
|
22
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
23
|
+
const delay = baseDelay * Math.pow(2, attempt);
|
|
24
|
+
await new Promise(r => setTimeout(r, delay));
|
|
25
|
+
lastResponse = await doFetch(request.url, request.options);
|
|
26
|
+
if (!retryStatuses.has(lastResponse.status)) {
|
|
27
|
+
return lastResponse; // Success or non-retryable error
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return lastResponse;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/fetch/interceptors/retry.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiC,EAAE;AACnC,0EAA0E;AAC1E,OAAkE;IAElE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;IAE3C,OAAO;QACL,IAAI,EAAE,OAAO;QAEb,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAA8C;YAC/E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpD,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,wDAAwD;YACxD,IAAI,YAAY,GAAG,QAAQ,CAAC;YAC5B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBAE7C,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,OAAO,YAAY,CAAC,CAAC,iCAAiC;gBACxD,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FetchInterceptor } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Timeout interceptor — aborts requests after configured ms.
|
|
4
|
+
* Enabled declaratively: { "interceptors": { "timeout": { "ms": 15000 } } }
|
|
5
|
+
*/
|
|
6
|
+
export declare function createTimeoutInterceptor(ms: number): FetchInterceptor;
|
|
7
|
+
//# sourceMappingURL=timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../src/fetch/interceptors/timeout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAiBrE"}
|