Socket
Socket
Sign inDemoInstall

@stackflow/plugin-history-sync

Package Overview
Dependencies
10
Maintainers
1
Versions
110
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.7.0 to 0.7.1-alpha.1

19

dist/historySyncPlugin.d.ts

@@ -1,2 +0,1 @@

import { ActivityParams } from "@stackflow/core";
import { StackflowReactPlugin } from "@stackflow/react";

@@ -8,21 +7,5 @@ declare type HistorySyncPluginOptions<K extends string> = {

fallbackActivity: (args: {
context: any;
initContext: any;
}) => K;
useHash?: boolean;
experimental_initialPreloadRef?: (args: {
path: string;
route: string;
activityId: string;
activityName: K;
activityParams: ActivityParams;
context: any;
}) => any;
experimental_preloadRef?: (args: {
path: string;
route: string;
activityId: string;
activityName: K;
activityParams: ActivityParams;
context: any;
}) => any;
};

@@ -29,0 +12,0 @@ export declare function historySyncPlugin<T extends {

2

dist/index.js

@@ -1,2 +0,2 @@

var F=Object.create;var R=Object.defineProperty,z=Object.defineProperties,Q=Object.getOwnPropertyDescriptor,V=Object.getOwnPropertyDescriptors,W=Object.getOwnPropertyNames,H=Object.getOwnPropertySymbols,J=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var B=(t,a,e)=>a in t?R(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,u=(t,a)=>{for(var e in a||(a={}))x.call(a,e)&&B(t,e,a[e]);if(H)for(var e of H(a))X.call(a,e)&&B(t,e,a[e]);return t},G=(t,a)=>z(t,V(a));var Y=(t,a)=>{for(var e in a)R(t,e,{get:a[e],enumerable:!0})},U=(t,a,e,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let y of W(a))!x.call(t,y)&&y!==e&&R(t,y,{get:()=>a[y],enumerable:!(r=Q(a,y))||r.enumerable});return t};var $=(t,a,e)=>(e=t!=null?F(J(t)):{},U(a||!t||!t.__esModule?R(e,"default",{value:t,enumerable:!0}):e,t)),Z=t=>U(R({},"__esModule",{value:!0}),t);var ct={};Y(ct,{historySyncPlugin:()=>st});module.exports=Z(ct);var w=require("@stackflow/core"),q=$(require("react"));var L=$(require("url-pattern"));function tt(t){return new URL(t,"file://")}function at(t){let a={};return t.forEach((e,r)=>{a[r]=e}),a}function et(t){return t.endsWith("/")?t:`${t}/`}function it(t){return t.toString().length>0?`?${t}`:t}function h(t){let a=new L.default(`${t}(/)`);return{fill(e){var l;let r=a.stringify(e),y=(l=a.match(r))!=null?l:{},i=u({},e);Object.keys(y).forEach(m=>{delete i[m]});let c=new URLSearchParams(i);return et(r)+it(c)},parse(e){let r=tt(e),y=a.match(r.pathname),i=at(r.searchParams);return y?u(u({},i),y):null}}}var N="@stackflow/plugin-history-sync@0.6.2",nt=1e3,O=60*nt,g=typeof window=="undefined";function M(){return g?null:window.history.state}function p(t){return typeof t=="string"?[t]:t}function E(t){let a=t;return typeof a=="object"&&a!==null&&"_TAG"in a&&typeof a._TAG=="string"&&a._TAG===N?t:null}function rt({state:t,url:a,useHash:e}){if(g)return;let r=e?`${window.location.pathname}#${a}`:a;window.history.pushState(t,"",r)}function j({state:t,url:a,useHash:e}){if(g)return;let r=e?`${window.location.pathname}#${a}`:a;window.history.replaceState(t,"",r)}var D,C=(D=q.default.startTransition)!=null?D:t=>t();function st(t){return({context:a})=>{let e=!1,r=null;function y({activityId:i,activityName:c,activityParams:l}){var n;let m=p(t.routes[c])[0],d=h(m).fill(l);return(n=t.experimental_preloadRef)==null?void 0:n.call(t,{path:d,route:m,activityId:i,activityName:c,activityParams:l,context:a})}return{key:"historySync",initialPushedEvent(){var s,k,I;let i=E(M());if(i){let o=i.activity.name,f=p(t.routes[o])[0],S=h(f).fill(i.activity.params),T=(s=t.experimental_initialPreloadRef)==null?void 0:s.call(t,{path:S,route:f,activityId:i.activity.id,activityName:i.activity.name,activityParams:i.activity.params,context:a});return G(u(u({},i.activity.pushedBy),T?{preloadRef:T}:null),{name:"Pushed"})}function c(){var o,f;return((o=a==null?void 0:a.req)==null?void 0:o.path)&&typeof a.req.path=="string"?a.req.path:g?null:t.useHash?(f=window.location.hash.split("#")[1])!=null?f:"/":window.location.pathname+window.location.search}let l=c(),m=Object.keys(t.routes);if(l)for(let o=0;o<m.length;o+=1){let f=m[o],A=p(t.routes[f]);for(let S=0;S<A.length;S+=1){let T=A[S],_=h(T).parse(l);if(!!_){let K=(0,w.id)(),b=(k=t.experimental_initialPreloadRef)==null?void 0:k.call(t,{path:l,route:T,activityId:K,activityName:f,activityParams:_,context:a});return(0,w.makeEvent)("Pushed",u({activityId:K,activityName:f,params:u({},_),eventDate:new Date().getTime()-O},b?{preloadRef:b}:null))}}}let P=(0,w.id)(),d=t.fallbackActivity({context:a}),n=p(t.routes[d]),v=(I=t.experimental_initialPreloadRef)==null?void 0:I.call(t,{path:n[0],route:n[0],activityId:P,activityName:d,activityParams:{},context:a});return(0,w.makeEvent)("Pushed",u({activityId:P,activityName:d,params:{},eventDate:new Date().getTime()-O},v?{preloadRef:v}:null))},onInit({actions:{getStack:i,dispatchEvent:c}}){let l=i().activities[0],m=h(p(t.routes[l.name])[0]);j({url:m.fill(l.params),state:{_TAG:N,activity:l},useHash:t.useHash});let P=d=>{let n=E(d.state);if(!n)return;let{activities:v}=i(),s=v.find(o=>o.id===n.activity.pushedBy.activityId),k=!s&&n.activity.pushedBy.activityId<v[0].id||(s==null?void 0:s.transitionState)==="enter-active"||(s==null?void 0:s.transitionState)==="enter-done",I=!s&&n.activity.pushedBy.activityId>v[v.length-1].id||(s==null?void 0:s.transitionState)==="exit-active"||(s==null?void 0:s.transitionState)==="exit-done";if(k&&(c("Popped",{}),!s)){e=!0;let o=y({activityId:n.activity.id,activityName:n.activity.name,activityParams:n.activity.params});C(()=>{c("Pushed",u(u({},n.activity.pushedBy),o?{preloadRef:o}:null))})}if(I){e=!0;let o=y({activityId:n.activity.id,activityName:n.activity.name,activityParams:n.activity.params});C(()=>{c("Pushed",u({activityId:n.activity.pushedBy.activityId,activityName:n.activity.pushedBy.activityName,params:n.activity.pushedBy.params},o?{preloadRef:o}:null))})}};r==null||r(),g||window.addEventListener("popstate",P),r=()=>{g||window.removeEventListener("popstate",P)}},onPushed({effect:{activity:i}}){if(e){e=!1;return}let c=h(p(t.routes[i.name])[0]);rt({url:c.fill(i.params),state:{_TAG:N,activity:i},useHash:t.useHash})},onReplaced({effect:{activity:i}}){let c=h(p(t.routes[i.name])[0]);j({url:c.fill(i.params),state:{_TAG:N,activity:i},useHash:t.useHash})},onBeforePush({actionParams:i,actions:{overrideActionParams:c}}){let l=y({activityId:i.activityId,activityName:i.activityName,activityParams:i.params});c(u(u({},i),l?{preloadRef:l}:null))},onBeforePop({actions:{preventDefault:i}}){i();do typeof window!="undefined"&&window.history.back();while(!E(M()))}}}}
var M=Object.create;var S=Object.defineProperty,j=Object.defineProperties,C=Object.getOwnPropertyDescriptor,D=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertyNames,I=Object.getOwnPropertySymbols,F=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var R=(t,e,a)=>e in t?S(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,c=(t,e)=>{for(var a in e||(e={}))H.call(e,a)&&R(t,a,e[a]);if(I)for(var a of I(e))z.call(e,a)&&R(t,a,e[a]);return t},p=(t,e)=>j(t,D(e));var Q=(t,e)=>{for(var a in e)S(t,a,{get:e[a],enumerable:!0})},N=(t,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of q(e))!H.call(t,n)&&n!==a&&S(t,n,{get:()=>e[n],enumerable:!(s=C(e,n))||s.enumerable});return t};var x=(t,e,a)=>(a=t!=null?M(F(t)):{},N(e||!t||!t.__esModule?S(a,"default",{value:t,enumerable:!0}):a,t)),V=t=>N(S({},"__esModule",{value:!0}),t);var nt={};Q(nt,{historySyncPlugin:()=>et});module.exports=V(nt);var m=require("@stackflow/core"),L=x(require("react"));var B=x(require("url-pattern"));function W(t){return new URL(t,"file://")}function J(t){let e={};return t.forEach((a,s)=>{e[s]=a}),e}function X(t){return t.endsWith("/")?t:`${t}/`}function Y(t){return t.toString().length>0?`?${t}`:t}function h(t){let e=new B.default(`${t}(/)`);return{fill(a){var o;let s=e.stringify(a),n=(o=e.match(s))!=null?o:{},i=c({},a);Object.keys(n).forEach(v=>{delete i[v]});let l=new URLSearchParams(i);return X(s)+Y(l)},parse(a){let s=W(a),n=e.match(s.pathname),i=J(s.searchParams);return n?c(c({},i),n):null}}}var P="@stackflow/plugin-history-sync@0.7.0",Z=1e3,_=60*Z,d=typeof window=="undefined";function G(){return d?null:window.history.state}function y(t){return typeof t=="string"?[t]:t}function A(t){let e=t;return typeof e=="object"&&e!==null&&"_TAG"in e&&typeof e._TAG=="string"&&e._TAG===P?t:null}function tt({state:t,url:e,useHash:a}){if(d)return;let s=a?`${window.location.pathname}#${e}`:e;window.history.pushState(t,"",s)}function U({state:t,url:e,useHash:a}){if(d)return;let s=a?`${window.location.pathname}#${e}`:e;window.history.replaceState(t,"",s)}var K,$=(K=L.default.startTransition)!=null?K:t=>t();function et(t){return({initContext:e})=>{let a=!1,s=null;return{key:"historySync",overrideInitialPushedEvent(){let n=A(G());if(n)return p(c({},n.activity.pushedBy),{name:"Pushed"});function i(){var u,r;return((u=e==null?void 0:e.req)==null?void 0:u.path)&&typeof e.req.path=="string"?e.req.path:d?null:t.useHash?(r=window.location.hash.split("#")[1])!=null?r:"/":window.location.pathname+window.location.search}let l=i(),o=Object.keys(t.routes);if(l)for(let u=0;u<o.length;u+=1){let r=o[u],T=y(t.routes[r]);for(let w=0;w<T.length;w+=1){let k=T[w],b=h(k).parse(l);if(!!b){let O=(0,m.id)();return(0,m.makeEvent)("Pushed",{activityId:O,activityName:r,params:c({},b),eventDate:new Date().getTime()-_,eventContext:{"plugin-history-sync":{path:l}}})}}}let v=(0,m.id)(),g=t.fallbackActivity({initContext:e}),f=y(t.routes[g])[0];return(0,m.makeEvent)("Pushed",{activityId:v,activityName:g,params:{},eventDate:new Date().getTime()-_,eventContext:{"plugin-history-sync":{path:f}}})},onInit({actions:{getStack:n,dispatchEvent:i,push:l}}){let o=n().activities[0],v=h(y(t.routes[o.name])[0]);U({url:v.fill(o.params),state:{_TAG:P,activity:o},useHash:t.useHash});let g=E=>{let f=A(E.state);if(!f)return;let{activities:u}=n(),r=u.find(k=>k.id===f.activity.pushedBy.activityId),T=!r&&f.activity.pushedBy.activityId<u[0].id||(r==null?void 0:r.transitionState)==="enter-active"||(r==null?void 0:r.transitionState)==="enter-done",w=!r&&f.activity.pushedBy.activityId>u[u.length-1].id||(r==null?void 0:r.transitionState)==="exit-active"||(r==null?void 0:r.transitionState)==="exit-done";T&&(i("Popped",{}),r||(a=!0,$(()=>{l(c({},f.activity.pushedBy))}))),w&&(a=!0,$(()=>{l({activityId:f.activity.pushedBy.activityId,activityName:f.activity.pushedBy.activityName,params:f.activity.pushedBy.params})}))};s==null||s(),d||window.addEventListener("popstate",g),s=()=>{d||window.removeEventListener("popstate",g)}},onPushed({effect:{activity:n}}){if(a){a=!1;return}let i=h(y(t.routes[n.name])[0]);tt({url:i.fill(n.params),state:{_TAG:P,activity:n},useHash:t.useHash})},onReplaced({effect:{activity:n}}){let i=h(y(t.routes[n.name])[0]);U({url:i.fill(n.params),state:{_TAG:P,activity:n},useHash:t.useHash})},onBeforePush({actionParams:n,actions:{overrideActionParams:i}}){let o=h(y(t.routes[n.activityName])[0]).fill(n.params);i(p(c({},n),{eventContext:p(c({},n.eventContext),{"plugin-history-sync":{path:o}})}))},onBeforeReplace({actionParams:n,actions:{overrideActionParams:i}}){let o=h(y(t.routes[n.activityName])[0]).fill(n.params);i(p(c({},n),{eventContext:p(c({},n.eventContext),{"plugin-history-sync":{path:o}})}))},onBeforePop({actions:{preventDefault:n}}){n();do typeof window!="undefined"&&window.history.back();while(!A(G()))}}}}
//# sourceMappingURL=index.js.map
{
"name": "@stackflow/plugin-history-sync",
"version": "0.7.0",
"version": "0.7.1-alpha.1+1e3a00c",
"license": "MIT",

@@ -30,5 +30,5 @@ "exports": {

"devDependencies": {
"@stackflow/core": "^0.4.1",
"@stackflow/core": "^0.4.2-alpha.15+1e3a00c",
"@stackflow/esbuild-config": "^0.2.2",
"@stackflow/react": "^0.6.0",
"@stackflow/react": "^0.6.1-alpha.1+1e3a00c",
"@types/react": "^18.0.10",

@@ -54,3 +54,3 @@ "react": "^18.1.0",

},
"gitHead": "eea1cc8ddc1488ada45121a834cfc0a397ba5355"
"gitHead": "1e3a00c4625a6416659fb96e321c01792a3a015b"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc