@nlabs/metropolisjs 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/FACTORY_PATTERN_GUIDE.md +244 -0
  2. package/README.md +332 -0
  3. package/examples/factory-pattern-usage.ts +283 -0
  4. package/lex.config.mjs +17 -0
  5. package/lib/actions/eventActions/eventActions.d.ts +45 -0
  6. package/lib/actions/eventActions/eventActions.js +2 -0
  7. package/lib/actions/imageActions/imageActions.d.ts +56 -0
  8. package/lib/actions/imageActions/imageActions.js +2 -0
  9. package/lib/actions/index.d.ts +9 -0
  10. package/lib/actions/index.js +2 -0
  11. package/lib/actions/locationActions/locationActions.d.ts +58 -0
  12. package/lib/actions/locationActions/locationActions.js +2 -0
  13. package/lib/actions/messageActions/messageActions.d.ts +54 -0
  14. package/lib/actions/messageActions/messageActions.js +2 -0
  15. package/lib/actions/postActions/postActions.d.ts +56 -0
  16. package/lib/actions/postActions/postActions.js +2 -0
  17. package/lib/actions/profileActions/profileActions.d.ts +50 -0
  18. package/lib/actions/profileActions/profileActions.js +2 -0
  19. package/lib/actions/reactionActions/reactionActions.d.ts +52 -0
  20. package/lib/actions/reactionActions/reactionActions.js +2 -0
  21. package/lib/actions/sseActions/sseActions.d.ts +37 -0
  22. package/lib/actions/sseActions/sseActions.js +2 -0
  23. package/lib/actions/tagActions/tagActions.d.ts +55 -0
  24. package/lib/actions/tagActions/tagActions.js +2 -0
  25. package/lib/actions/userActions/userActions.d.ts +131 -0
  26. package/lib/actions/userActions/userActions.js +2 -0
  27. package/lib/actions/websocketActions/websocketActions.d.ts +31 -0
  28. package/lib/actions/websocketActions/websocketActions.js +2 -0
  29. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +20 -0
  30. package/lib/adapters/arangoAdapter/arangoAdapter.js +2 -0
  31. package/lib/adapters/contentAdapter/contentAdapter.d.ts +31 -0
  32. package/lib/adapters/contentAdapter/contentAdapter.js +2 -0
  33. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +23 -0
  34. package/lib/adapters/conversationAdapter/conversationAdapter.js +2 -0
  35. package/lib/adapters/eventAdapter/eventAdapter.d.ts +43 -0
  36. package/lib/adapters/eventAdapter/eventAdapter.js +2 -0
  37. package/lib/adapters/fileAdapter/fileAdapter.d.ts +29 -0
  38. package/lib/adapters/fileAdapter/fileAdapter.js +2 -0
  39. package/lib/adapters/imageAdapter/imageAdapter.d.ts +31 -0
  40. package/lib/adapters/imageAdapter/imageAdapter.js +2 -0
  41. package/lib/adapters/index.d.ts +16 -0
  42. package/lib/adapters/index.js +2 -0
  43. package/lib/adapters/locationAdapter/locationAdapter.d.ts +27 -0
  44. package/lib/adapters/locationAdapter/locationAdapter.js +2 -0
  45. package/lib/adapters/messageAdapter/messageAdapter.d.ts +27 -0
  46. package/lib/adapters/messageAdapter/messageAdapter.js +2 -0
  47. package/lib/adapters/personaAdapter/personaAdapter.d.ts +18 -0
  48. package/lib/adapters/personaAdapter/personaAdapter.js +2 -0
  49. package/lib/adapters/postAdapter/postAdapter.d.ts +32 -0
  50. package/lib/adapters/postAdapter/postAdapter.js +2 -0
  51. package/lib/adapters/profileAdapter/profileAdapter.d.ts +32 -0
  52. package/lib/adapters/profileAdapter/profileAdapter.js +2 -0
  53. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +20 -0
  54. package/lib/adapters/reactionAdapter/reactionAdapter.js +2 -0
  55. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +16 -0
  56. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +2 -0
  57. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +23 -0
  58. package/lib/adapters/sessionAdapter/sessionAdapter.js +2 -0
  59. package/lib/adapters/tagAdapter/tagAdapter.d.ts +20 -0
  60. package/lib/adapters/tagAdapter/tagAdapter.js +2 -0
  61. package/lib/adapters/userAdapter/userAdapter.d.ts +55 -0
  62. package/lib/adapters/userAdapter/userAdapter.js +2 -0
  63. package/lib/config/index.d.ts +31 -0
  64. package/lib/config/index.js +2 -0
  65. package/lib/constants/MetropolisConstants.d.ts +14 -0
  66. package/lib/constants/MetropolisConstants.js +2 -0
  67. package/lib/graphql/message.d.ts +2 -0
  68. package/lib/graphql/message.js +18 -0
  69. package/lib/graphql/notification.d.ts +2 -0
  70. package/lib/graphql/notification.js +18 -0
  71. package/lib/graphql/session.d.ts +1 -0
  72. package/lib/graphql/session.js +16 -0
  73. package/lib/index.d.ts +29 -0
  74. package/lib/index.js +2 -0
  75. package/lib/stores/appStore.d.ts +22 -0
  76. package/lib/stores/appStore.js +2 -0
  77. package/lib/stores/eventStore.d.ts +34 -0
  78. package/lib/stores/eventStore.js +2 -0
  79. package/lib/stores/imageStore.d.ts +35 -0
  80. package/lib/stores/imageStore.js +2 -0
  81. package/lib/stores/index.d.ts +15 -0
  82. package/lib/stores/index.js +2 -0
  83. package/lib/stores/locationStore.d.ts +33 -0
  84. package/lib/stores/locationStore.js +2 -0
  85. package/lib/stores/messageStore.d.ts +36 -0
  86. package/lib/stores/messageStore.js +2 -0
  87. package/lib/stores/postStore.d.ts +33 -0
  88. package/lib/stores/postStore.js +2 -0
  89. package/lib/stores/profileStore.d.ts +24 -0
  90. package/lib/stores/profileStore.js +2 -0
  91. package/lib/stores/reactionStore.d.ts +24 -0
  92. package/lib/stores/reactionStore.js +2 -0
  93. package/lib/stores/tagStore.d.ts +31 -0
  94. package/lib/stores/tagStore.js +2 -0
  95. package/lib/stores/userStore.d.ts +73 -0
  96. package/lib/stores/userStore.js +2 -0
  97. package/lib/stores/websocketStore.d.ts +23 -0
  98. package/lib/stores/websocketStore.js +2 -0
  99. package/lib/utils/MetropolisProvider.d.ts +34 -0
  100. package/lib/utils/MetropolisProvider.js +2 -0
  101. package/lib/utils/actionFactory.d.ts +22 -0
  102. package/lib/utils/actionFactory.js +2 -0
  103. package/lib/utils/api.d.ts +43 -0
  104. package/lib/utils/api.js +7 -0
  105. package/lib/utils/app.d.ts +6 -0
  106. package/lib/utils/app.js +2 -0
  107. package/lib/utils/baseActionFactory.d.ts +34 -0
  108. package/lib/utils/baseActionFactory.js +2 -0
  109. package/lib/utils/dateUtils.d.ts +2 -0
  110. package/lib/utils/dateUtils.js +2 -0
  111. package/lib/utils/file.d.ts +1 -0
  112. package/lib/utils/file.js +2 -0
  113. package/lib/utils/location.d.ts +9 -0
  114. package/lib/utils/location.js +2 -0
  115. package/lib/utils/useMetropolis.d.ts +12 -0
  116. package/lib/utils/useMetropolis.js +2 -0
  117. package/lib/utils/validatorFactory.d.ts +48 -0
  118. package/lib/utils/validatorFactory.js +2 -0
  119. package/package.json +33 -27
  120. package/tsconfig.lint.json +25 -0
  121. package/tsconfig.test.json +14 -0
@@ -0,0 +1,2 @@
1
+ import{isEmpty as l}from"@nlabs/utils";import y from"p-debounce";import{parseLocation as c}from"../adapters/locationAdapter/locationAdapter";import{appQuery as s}from"../utils/api";const m="locations",F=y(async(e,t,r,a,n=[],i=c)=>{if(l(t))return[];try{const o={address:{type:"String",value:t},latitude:{type:"Float",value:r},longitude:{type:"Float",value:a}},{autoCompleteLocation:p=[]}=await s(e,"autoCompleteLocation",m,o,["address","latitude","longitude",...n]);return p.map(u=>i(u))}catch{return[]}},500),b=async(e,t,r,a,n=[],i=c)=>{if(l(t))return[];try{const o={address:{type:"String",value:t},latitude:{type:"Float",value:r},longitude:{type:"Float",value:a}},{autoCompleteLocation:p=[]}=await s(e,"autoCompleteLocation",m,o,["address","latitude","longitude",...n]);return p.map(u=>i(u))}catch{return[]}};export{F as autoCompleteLocation,b as searchLocations};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2xvY2F0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMi1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHtpc0VtcHR5fSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHBEZWJvdW5jZSBmcm9tICdwLWRlYm91bmNlJztcblxuaW1wb3J0IHtwYXJzZUxvY2F0aW9ufSBmcm9tICcuLi9hZGFwdGVycy9sb2NhdGlvbkFkYXB0ZXIvbG9jYXRpb25BZGFwdGVyJztcbmltcG9ydCB7YXBwUXVlcnksIHR5cGUgUmVha3RvckRiQ29sbGVjdGlvbn0gZnJvbSAnLi4vdXRpbHMvYXBpJztcblxuaW1wb3J0IHR5cGUge0xvY2F0aW9uVHlwZX0gZnJvbSAnLi4vYWRhcHRlcnMvbG9jYXRpb25BZGFwdGVyL2xvY2F0aW9uQWRhcHRlcic7XG5cbmNvbnN0IERBVEFfVFlQRTogUmVha3RvckRiQ29sbGVjdGlvbiA9ICdsb2NhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgYXV0b0NvbXBsZXRlTG9jYXRpb24gPSBwRGVib3VuY2UoYXN5bmMgKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIGxhdGl0dWRlPzogbnVtYmVyLFxuICBsb25naXR1ZGU/OiBudW1iZXIsXG4gIGxvY2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gIEN1c3RvbUNsYXNzOiB0eXBlb2YgcGFyc2VMb2NhdGlvbiA9IHBhcnNlTG9jYXRpb25cbik6IFByb21pc2U8TG9jYXRpb25UeXBlW10+ID0+IHtcbiAgaWYoaXNFbXB0eShhZGRyZXNzKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICBhZGRyZXNzOiB7XG4gICAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgICB2YWx1ZTogYWRkcmVzc1xuICAgICAgfSxcbiAgICAgIGxhdGl0dWRlOiB7XG4gICAgICAgIHR5cGU6ICdGbG9hdCcsXG4gICAgICAgIHZhbHVlOiBsYXRpdHVkZVxuICAgICAgfSxcbiAgICAgIGxvbmdpdHVkZToge1xuICAgICAgICB0eXBlOiAnRmxvYXQnLFxuICAgICAgICB2YWx1ZTogbG9uZ2l0dWRlXG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHthdXRvQ29tcGxldGVMb2NhdGlvbiA9IFtdfSA9IGF3YWl0IGFwcFF1ZXJ5KGZsdXgsICdhdXRvQ29tcGxldGVMb2NhdGlvbicsIERBVEFfVFlQRSwgcXVlcnlWYXJpYWJsZXMsIFtcbiAgICAgICdhZGRyZXNzJyxcbiAgICAgICdsYXRpdHVkZScsXG4gICAgICAnbG9uZ2l0dWRlJyxcbiAgICAgIC4uLmxvY2F0aW9uUHJvcHNcbiAgICBdKSBhcyB7YXV0b0NvbXBsZXRlTG9jYXRpb246IFJlY29yZDxzdHJpbmcsIHVua25vd24+W119O1xuICAgIHJldHVybiBhdXRvQ29tcGxldGVMb2NhdGlvbi5tYXAoKGl0ZW0pID0+IEN1c3RvbUNsYXNzKGl0ZW0pKTtcbiAgfSBjYXRjaChfZXJyb3IpIHtcbiAgICAvLyBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICByZXR1cm4gW107XG4gIH1cbn0sIDUwMCk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hMb2NhdGlvbnMgPSBhc3luYyAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIGFkZHJlc3M6IHN0cmluZyxcbiAgbGF0aXR1ZGU/OiBudW1iZXIsXG4gIGxvbmdpdHVkZT86IG51bWJlcixcbiAgbG9jYXRpb25Qcm9wczogc3RyaW5nW10gPSBbXSxcbiAgQ3VzdG9tQ2xhc3M6IHR5cGVvZiBwYXJzZUxvY2F0aW9uID0gcGFyc2VMb2NhdGlvblxuKTogUHJvbWlzZTxMb2NhdGlvblR5cGVbXT4gPT4ge1xuICBpZihpc0VtcHR5KGFkZHJlc3MpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgIGFkZHJlc3M6IHtcbiAgICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgICAgIHZhbHVlOiBhZGRyZXNzXG4gICAgICB9LFxuICAgICAgbGF0aXR1ZGU6IHtcbiAgICAgICAgdHlwZTogJ0Zsb2F0JyxcbiAgICAgICAgdmFsdWU6IGxhdGl0dWRlXG4gICAgICB9LFxuICAgICAgbG9uZ2l0dWRlOiB7XG4gICAgICAgIHR5cGU6ICdGbG9hdCcsXG4gICAgICAgIHZhbHVlOiBsb25naXR1ZGVcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qge2F1dG9Db21wbGV0ZUxvY2F0aW9uID0gW119ID0gYXdhaXQgYXBwUXVlcnkoZmx1eCwgJ2F1dG9Db21wbGV0ZUxvY2F0aW9uJywgREFUQV9UWVBFLCBxdWVyeVZhcmlhYmxlcywgW1xuICAgICAgJ2FkZHJlc3MnLFxuICAgICAgJ2xhdGl0dWRlJyxcbiAgICAgICdsb25naXR1ZGUnLFxuICAgICAgLi4ubG9jYXRpb25Qcm9wc1xuICAgIF0pIGFzIHthdXRvQ29tcGxldGVMb2NhdGlvbjogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXX07XG4gICAgcmV0dXJuIGF1dG9Db21wbGV0ZUxvY2F0aW9uLm1hcCgoaXRlbSkgPT4gQ3VzdG9tQ2xhc3MoaXRlbSkpO1xuICB9IGNhdGNoKF9lcnJvcikge1xuICAgIC8vIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIHJldHVybiBbXTtcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUtBLE9BQVEsV0FBQUEsTUFBYyxlQUN0QixPQUFPQyxNQUFlLGFBRXRCLE9BQVEsaUJBQUFDLE1BQW9CLDhDQUM1QixPQUFRLFlBQUFDLE1BQXlDLGVBSWpELE1BQU1DLEVBQWlDLFlBRTFCQyxFQUF1QkosRUFBVSxNQUM1Q0ssRUFDQUMsRUFDQUMsRUFDQUMsRUFDQUMsRUFBMEIsQ0FBQyxFQUMzQkMsRUFBb0NULElBQ1IsQ0FDNUIsR0FBR0YsRUFBUU8sQ0FBTyxFQUNoQixNQUFPLENBQUMsRUFHVixHQUFJLENBQ0YsTUFBTUssRUFBaUIsQ0FDckIsUUFBUyxDQUNQLEtBQU0sU0FDTixNQUFPTCxDQUNULEVBQ0EsU0FBVSxDQUNSLEtBQU0sUUFDTixNQUFPQyxDQUNULEVBQ0EsVUFBVyxDQUNULEtBQU0sUUFDTixNQUFPQyxDQUNULENBQ0YsRUFFTSxDQUFDLHFCQUFBSixFQUF1QixDQUFDLENBQUMsRUFBSSxNQUFNRixFQUFTRyxFQUFNLHVCQUF3QkYsRUFBV1EsRUFBZ0IsQ0FDMUcsVUFDQSxXQUNBLFlBQ0EsR0FBR0YsQ0FDTCxDQUFDLEVBQ0QsT0FBT0wsRUFBcUIsSUFBS1EsR0FBU0YsRUFBWUUsQ0FBSSxDQUFDLENBQzdELE1BQWdCLENBRWQsTUFBTyxDQUFDLENBQ1YsQ0FDRixFQUFHLEdBQUcsRUFFT0MsRUFBa0IsTUFDN0JSLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQTBCLENBQUMsRUFDM0JDLEVBQW9DVCxJQUNSLENBQzVCLEdBQUdGLEVBQVFPLENBQU8sRUFDaEIsTUFBTyxDQUFDLEVBR1YsR0FBSSxDQUNGLE1BQU1LLEVBQWlCLENBQ3JCLFFBQVMsQ0FDUCxLQUFNLFNBQ04sTUFBT0wsQ0FDVCxFQUNBLFNBQVUsQ0FDUixLQUFNLFFBQ04sTUFBT0MsQ0FDVCxFQUNBLFVBQVcsQ0FDVCxLQUFNLFFBQ04sTUFBT0MsQ0FDVCxDQUNGLEVBRU0sQ0FBQyxxQkFBQUosRUFBdUIsQ0FBQyxDQUFDLEVBQUksTUFBTUYsRUFBU0csRUFBTSx1QkFBd0JGLEVBQVdRLEVBQWdCLENBQzFHLFVBQ0EsV0FDQSxZQUNBLEdBQUdGLENBQ0wsQ0FBQyxFQUNELE9BQU9MLEVBQXFCLElBQUtRLEdBQVNGLEVBQVlFLENBQUksQ0FBQyxDQUM3RCxNQUFnQixDQUVkLE1BQU8sQ0FBQyxDQUNWLENBQ0YiLAogICJuYW1lcyI6IFsiaXNFbXB0eSIsICJwRGVib3VuY2UiLCAicGFyc2VMb2NhdGlvbiIsICJhcHBRdWVyeSIsICJEQVRBX1RZUEUiLCAiYXV0b0NvbXBsZXRlTG9jYXRpb24iLCAiZmx1eCIsICJhZGRyZXNzIiwgImxhdGl0dWRlIiwgImxvbmdpdHVkZSIsICJsb2NhdGlvblByb3BzIiwgIkN1c3RvbUNsYXNzIiwgInF1ZXJ5VmFyaWFibGVzIiwgIml0ZW0iLCAic2VhcmNoTG9jYXRpb25zIl0KfQo=
@@ -0,0 +1,12 @@
1
+ export declare const useMetropolis: () => {
2
+ eventActions: any;
3
+ imageActions: any;
4
+ locationActions: any;
5
+ messageActions: any;
6
+ postActions: any;
7
+ profileActions: any;
8
+ reactionActions: any;
9
+ tagActions: any;
10
+ userActions: any;
11
+ websocketActions: any;
12
+ };
@@ -0,0 +1,2 @@
1
+ import{useFlux as b}from"@nlabs/arkhamjs-utils-react";import{useContext as k,useMemo as w}from"react";import{createAllActions as C}from"../utils/actionFactory";import{MetropolisContext as P}from"./MetropolisProvider";const R=()=>{const p=b(),{adapters:c}=k(P),{Event:e,Image:t,Location:a,Message:n,Post:o,Profile:s,Reaction:r,Tag:i,User:d}=c||{};return w(()=>{const{event:A,image:u,location:f,message:m,post:g,profile:l,reaction:y,tag:v,user:x,websocket:M}=C(p,{event:e?{eventAdapter:e}:void 0,image:t?{imageAdapter:t}:void 0,location:a?{locationAdapter:a}:void 0,message:n?{messageAdapter:n}:void 0,post:o?{postAdapter:o}:void 0,profile:s?{profileAdapter:s}:void 0,reaction:r?{reactionAdapter:r}:void 0,tag:i?{tagAdapter:i}:void 0,user:d?{userAdapter:d}:void 0});return{eventActions:A,imageActions:u,locationActions:f,messageActions:m,postActions:g,profileActions:l,reactionActions:y,tagActions:v,userActions:x,websocketActions:M}},[p,e,t,a,n,o,s,r,i,d])};export{R as useMetropolis};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3VzZU1ldHJvcG9saXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7dXNlRmx1eH0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzLXV0aWxzLXJlYWN0JztcbmltcG9ydCB7dXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge2NyZWF0ZUFsbEFjdGlvbnN9IGZyb20gJy4uL3V0aWxzL2FjdGlvbkZhY3RvcnknO1xuaW1wb3J0IHtNZXRyb3BvbGlzQ29udGV4dH0gZnJvbSAnLi9NZXRyb3BvbGlzUHJvdmlkZXInO1xuXG5leHBvcnQgY29uc3QgdXNlTWV0cm9wb2xpcyA9ICgpID0+IHtcbiAgY29uc3QgZmx1eCA9IHVzZUZsdXgoKTtcbiAgY29uc3Qge2FkYXB0ZXJzfSA9IHVzZUNvbnRleHQoTWV0cm9wb2xpc0NvbnRleHQpO1xuICBjb25zdCB7XG4gICAgRXZlbnQ6IGV2ZW50QWRhcHRlcixcbiAgICBJbWFnZTogaW1hZ2VBZGFwdGVyLFxuICAgIExvY2F0aW9uOiBsb2NhdGlvbkFkYXB0ZXIsXG4gICAgTWVzc2FnZTogbWVzc2FnZUFkYXB0ZXIsXG4gICAgUG9zdDogcG9zdEFkYXB0ZXIsXG4gICAgUHJvZmlsZTogcHJvZmlsZUFkYXB0ZXIsXG4gICAgUmVhY3Rpb246IHJlYWN0aW9uQWRhcHRlcixcbiAgICBUYWc6IHRhZ0FkYXB0ZXIsXG4gICAgVXNlcjogdXNlckFkYXB0ZXJcbiAgfSA9IGFkYXB0ZXJzIHx8IHt9O1xuXG4gIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gICAgY29uc3Qge1xuICAgICAgZXZlbnQsXG4gICAgICBpbWFnZSxcbiAgICAgIGxvY2F0aW9uLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIHBvc3QsXG4gICAgICBwcm9maWxlLFxuICAgICAgcmVhY3Rpb24sXG4gICAgICB0YWcsXG4gICAgICB1c2VyLFxuICAgICAgd2Vic29ja2V0XG4gICAgfSA9IGNyZWF0ZUFsbEFjdGlvbnMoZmx1eCwge1xuICAgICAgLy8gVXNlIHR5cGUgYXNzZXJ0aW9ucyB0byBicmlkZ2UgdGhlIGdhcCBiZXR3ZWVuIHRoZSBhZGFwdGVyIHNpZ25hdHVyZXNcbiAgICAgIGV2ZW50OiBldmVudEFkYXB0ZXIgPyB7ZXZlbnRBZGFwdGVyOiBldmVudEFkYXB0ZXIgYXMgYW55fSA6IHVuZGVmaW5lZCxcbiAgICAgIGltYWdlOiBpbWFnZUFkYXB0ZXIgPyB7aW1hZ2VBZGFwdGVyOiBpbWFnZUFkYXB0ZXIgYXMgYW55fSA6IHVuZGVmaW5lZCxcbiAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbkFkYXB0ZXIgPyB7bG9jYXRpb25BZGFwdGVyOiBsb2NhdGlvbkFkYXB0ZXIgYXMgYW55fSA6IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VBZGFwdGVyID8ge21lc3NhZ2VBZGFwdGVyOiBtZXNzYWdlQWRhcHRlciBhcyBhbnl9IDogdW5kZWZpbmVkLFxuICAgICAgcG9zdDogcG9zdEFkYXB0ZXIgPyB7cG9zdEFkYXB0ZXI6IHBvc3RBZGFwdGVyIGFzIGFueX0gOiB1bmRlZmluZWQsXG4gICAgICBwcm9maWxlOiBwcm9maWxlQWRhcHRlciA/IHtwcm9maWxlQWRhcHRlcjogcHJvZmlsZUFkYXB0ZXIgYXMgYW55fSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlYWN0aW9uOiByZWFjdGlvbkFkYXB0ZXIgPyB7cmVhY3Rpb25BZGFwdGVyOiByZWFjdGlvbkFkYXB0ZXIgYXMgYW55fSA6IHVuZGVmaW5lZCxcbiAgICAgIHRhZzogdGFnQWRhcHRlciA/IHt0YWdBZGFwdGVyOiB0YWdBZGFwdGVyIGFzIGFueX0gOiB1bmRlZmluZWQsXG4gICAgICB1c2VyOiB1c2VyQWRhcHRlciA/IHt1c2VyQWRhcHRlcjogdXNlckFkYXB0ZXIgYXMgYW55fSA6IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGV2ZW50QWN0aW9uczogZXZlbnQsXG4gICAgICBpbWFnZUFjdGlvbnM6IGltYWdlLFxuICAgICAgbG9jYXRpb25BY3Rpb25zOiBsb2NhdGlvbixcbiAgICAgIG1lc3NhZ2VBY3Rpb25zOiBtZXNzYWdlLFxuICAgICAgcG9zdEFjdGlvbnM6IHBvc3QsXG4gICAgICBwcm9maWxlQWN0aW9uczogcHJvZmlsZSxcbiAgICAgIHJlYWN0aW9uQWN0aW9uczogcmVhY3Rpb24sXG4gICAgICB0YWdBY3Rpb25zOiB0YWcsXG4gICAgICB1c2VyQWN0aW9uczogdXNlcixcbiAgICAgIHdlYnNvY2tldEFjdGlvbnM6IHdlYnNvY2tldFxuICAgIH07XG4gIH0sIFtcbiAgICBmbHV4LFxuICAgIGV2ZW50QWRhcHRlcixcbiAgICBpbWFnZUFkYXB0ZXIsXG4gICAgbG9jYXRpb25BZGFwdGVyLFxuICAgIG1lc3NhZ2VBZGFwdGVyLFxuICAgIHBvc3RBZGFwdGVyLFxuICAgIHByb2ZpbGVBZGFwdGVyLFxuICAgIHJlYWN0aW9uQWRhcHRlcixcbiAgICB0YWdBZGFwdGVyLFxuICAgIHVzZXJBZGFwdGVyXG4gIF0pO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLFdBQUFBLE1BQWMsOEJBQ3RCLE9BQVEsY0FBQUMsRUFBWSxXQUFBQyxNQUFjLFFBRWxDLE9BQVEsb0JBQUFDLE1BQXVCLHlCQUMvQixPQUFRLHFCQUFBQyxNQUF3Qix1QkFFekIsTUFBTUMsRUFBZ0IsSUFBTSxDQUNqQyxNQUFNQyxFQUFPTixFQUFRLEVBQ2YsQ0FBQyxTQUFBTyxDQUFRLEVBQUlOLEVBQVdHLENBQWlCLEVBQ3pDLENBQ0osTUFBT0ksRUFDUCxNQUFPQyxFQUNQLFNBQVVDLEVBQ1YsUUFBU0MsRUFDVCxLQUFNQyxFQUNOLFFBQVNDLEVBQ1QsU0FBVUMsRUFDVixJQUFLQyxFQUNMLEtBQU1DLENBQ1IsRUFBSVQsR0FBWSxDQUFDLEVBRWpCLE9BQU9MLEVBQVEsSUFBTSxDQUVuQixLQUFNLENBQ0osTUFBQWUsRUFDQSxNQUFBQyxFQUNBLFNBQUFDLEVBQ0EsUUFBQUMsRUFDQSxLQUFBQyxFQUNBLFFBQUFDLEVBQ0EsU0FBQUMsRUFDQSxJQUFBQyxFQUNBLEtBQUFDLEVBQ0EsVUFBQUMsQ0FDRixFQUFJdkIsRUFBaUJHLEVBQU0sQ0FFekIsTUFBT0UsRUFBZSxDQUFDLGFBQWNBLENBQW1CLEVBQUksT0FDNUQsTUFBT0MsRUFBZSxDQUFDLGFBQWNBLENBQW1CLEVBQUksT0FDNUQsU0FBVUMsRUFBa0IsQ0FBQyxnQkFBaUJBLENBQXNCLEVBQUksT0FDeEUsUUFBU0MsRUFBaUIsQ0FBQyxlQUFnQkEsQ0FBcUIsRUFBSSxPQUNwRSxLQUFNQyxFQUFjLENBQUMsWUFBYUEsQ0FBa0IsRUFBSSxPQUN4RCxRQUFTQyxFQUFpQixDQUFDLGVBQWdCQSxDQUFxQixFQUFJLE9BQ3BFLFNBQVVDLEVBQWtCLENBQUMsZ0JBQWlCQSxDQUFzQixFQUFJLE9BQ3hFLElBQUtDLEVBQWEsQ0FBQyxXQUFZQSxDQUFpQixFQUFJLE9BQ3BELEtBQU1DLEVBQWMsQ0FBQyxZQUFhQSxDQUFrQixFQUFJLE1BQzFELENBQUMsRUFFRCxNQUFPLENBQ0wsYUFBY0MsRUFDZCxhQUFjQyxFQUNkLGdCQUFpQkMsRUFDakIsZUFBZ0JDLEVBQ2hCLFlBQWFDLEVBQ2IsZUFBZ0JDLEVBQ2hCLGdCQUFpQkMsRUFDakIsV0FBWUMsRUFDWixZQUFhQyxFQUNiLGlCQUFrQkMsQ0FDcEIsQ0FDRixFQUFHLENBQ0RwQixFQUNBRSxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxDQUNGLENBQUMsQ0FDSCIsCiAgIm5hbWVzIjogWyJ1c2VGbHV4IiwgInVzZUNvbnRleHQiLCAidXNlTWVtbyIsICJjcmVhdGVBbGxBY3Rpb25zIiwgIk1ldHJvcG9saXNDb250ZXh0IiwgInVzZU1ldHJvcG9saXMiLCAiZmx1eCIsICJhZGFwdGVycyIsICJldmVudEFkYXB0ZXIiLCAiaW1hZ2VBZGFwdGVyIiwgImxvY2F0aW9uQWRhcHRlciIsICJtZXNzYWdlQWRhcHRlciIsICJwb3N0QWRhcHRlciIsICJwcm9maWxlQWRhcHRlciIsICJyZWFjdGlvbkFkYXB0ZXIiLCAidGFnQWRhcHRlciIsICJ1c2VyQWRhcHRlciIsICJldmVudCIsICJpbWFnZSIsICJsb2NhdGlvbiIsICJtZXNzYWdlIiwgInBvc3QiLCAicHJvZmlsZSIsICJyZWFjdGlvbiIsICJ0YWciLCAidXNlciIsICJ3ZWJzb2NrZXQiXQp9Cg==
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ export interface BaseAdapterOptions {
6
+ strict?: boolean;
7
+ allowPartial?: boolean;
8
+ environment?: 'development' | 'production' | 'test';
9
+ customValidation?: (input: unknown) => unknown;
10
+ }
11
+ /**
12
+ * Creates a validator factory that merges custom adapters with default behavior.
13
+ * This eliminates code duplication across all action files.
14
+ *
15
+ * @param defaultValidator - The default validation function
16
+ * @param customAdapter - Optional custom adapter function
17
+ * @param options - Adapter options
18
+ * @returns A validator function that applies default + custom validation
19
+ *
20
+ * @example
21
+ * const validateUser = createValidatorFactory(
22
+ * defaultUserValidator,
23
+ * customUserAdapter,
24
+ * userAdapterOptions
25
+ * );
26
+ */
27
+ export declare const createValidatorFactory: <T extends BaseAdapterOptions>(defaultValidator: (input: unknown, options?: T) => any, customAdapter?: (input: unknown, options?: T) => any, options?: T) => (input: unknown, validatorOptions?: T) => any;
28
+ /**
29
+ * Creates a validator manager that handles adapter updates and recreation.
30
+ * This centralizes the update logic that's duplicated across action files.
31
+ *
32
+ * @param defaultValidator - The default validation function
33
+ * @param initialOptions - Initial adapter options
34
+ * @returns An object with validator and update functions
35
+ *
36
+ * @example
37
+ * const { validator, updateAdapter, updateOptions } = createValidatorManager(
38
+ * defaultUserValidator,
39
+ * userAdapterOptions
40
+ * );
41
+ */
42
+ export declare const createValidatorManager: <T extends BaseAdapterOptions>(defaultValidator: (input: unknown, options?: T) => any, initialOptions?: T) => {
43
+ getCustomAdapter: () => ((input: unknown, options?: T) => any) | undefined;
44
+ getOptions: () => T;
45
+ updateAdapter: (adapter: (input: unknown, options?: T) => any) => void;
46
+ updateOptions: (options: T) => void;
47
+ validator: (input: unknown, validatorOptions?: T | undefined) => any;
48
+ };
@@ -0,0 +1,2 @@
1
+ const p=(a,i,r)=>(n,o)=>{const t={...r,...o};let e=a(n,t);return i&&(e=i(e,t)),t?.customValidation&&(e=t.customValidation(e)),e},d=(a,i={})=>{let n={...{},...i},o,t=p(a,o,n);return{getCustomAdapter:()=>o,getOptions:()=>({...n}),updateAdapter:s=>{o=s,t=p(a,o,n)},updateOptions:s=>{n={...n,...s},t=p(a,o,n)},validator:t}};export{p as createValidatorFactory,d as createValidatorManager};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3ZhbGlkYXRvckZhY3RvcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFkYXB0ZXJPcHRpb25zIHtcbiAgc3RyaWN0PzogYm9vbGVhbjtcbiAgYWxsb3dQYXJ0aWFsPzogYm9vbGVhbjtcbiAgZW52aXJvbm1lbnQ/OiAnZGV2ZWxvcG1lbnQnIHwgJ3Byb2R1Y3Rpb24nIHwgJ3Rlc3QnO1xuICBjdXN0b21WYWxpZGF0aW9uPzogKGlucHV0OiB1bmtub3duKSA9PiB1bmtub3duO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB2YWxpZGF0b3IgZmFjdG9yeSB0aGF0IG1lcmdlcyBjdXN0b20gYWRhcHRlcnMgd2l0aCBkZWZhdWx0IGJlaGF2aW9yLlxuICogVGhpcyBlbGltaW5hdGVzIGNvZGUgZHVwbGljYXRpb24gYWNyb3NzIGFsbCBhY3Rpb24gZmlsZXMuXG4gKlxuICogQHBhcmFtIGRlZmF1bHRWYWxpZGF0b3IgLSBUaGUgZGVmYXVsdCB2YWxpZGF0aW9uIGZ1bmN0aW9uXG4gKiBAcGFyYW0gY3VzdG9tQWRhcHRlciAtIE9wdGlvbmFsIGN1c3RvbSBhZGFwdGVyIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFkYXB0ZXIgb3B0aW9uc1xuICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCBhcHBsaWVzIGRlZmF1bHQgKyBjdXN0b20gdmFsaWRhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB2YWxpZGF0ZVVzZXIgPSBjcmVhdGVWYWxpZGF0b3JGYWN0b3J5KFxuICogICBkZWZhdWx0VXNlclZhbGlkYXRvcixcbiAqICAgY3VzdG9tVXNlckFkYXB0ZXIsXG4gKiAgIHVzZXJBZGFwdGVyT3B0aW9uc1xuICogKTtcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVZhbGlkYXRvckZhY3RvcnkgPSA8VCBleHRlbmRzIEJhc2VBZGFwdGVyT3B0aW9ucz4oXG4gIGRlZmF1bHRWYWxpZGF0b3I6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IFQpID0+IGFueSxcbiAgY3VzdG9tQWRhcHRlcj86IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IFQpID0+IGFueSxcbiAgb3B0aW9ucz86IFRcbikgPT4gKGlucHV0OiB1bmtub3duLCB2YWxpZGF0b3JPcHRpb25zPzogVCkgPT4ge1xuICBjb25zdCBtZXJnZWRPcHRpb25zID0gey4uLm9wdGlvbnMsIC4uLnZhbGlkYXRvck9wdGlvbnN9O1xuXG4gIC8vIFN0YXJ0IHdpdGggZGVmYXVsdCB2YWxpZGF0aW9uXG4gIGxldCB2YWxpZGF0ZWQgPSBkZWZhdWx0VmFsaWRhdG9yKGlucHV0LCBtZXJnZWRPcHRpb25zIGFzIFQpO1xuXG4gIC8vIEFwcGx5IGN1c3RvbSB2YWxpZGF0aW9uIGlmIHByb3ZpZGVkXG4gIGlmKGN1c3RvbUFkYXB0ZXIpIHtcbiAgICB2YWxpZGF0ZWQgPSBjdXN0b21BZGFwdGVyKHZhbGlkYXRlZCwgbWVyZ2VkT3B0aW9ucyBhcyBUKTtcbiAgfVxuXG4gIC8vIEFwcGx5IGN1c3RvbSB2YWxpZGF0aW9uIGZyb20gb3B0aW9ucyBpZiBwcm92aWRlZFxuICBpZihtZXJnZWRPcHRpb25zPy5jdXN0b21WYWxpZGF0aW9uKSB7XG4gICAgdmFsaWRhdGVkID0gbWVyZ2VkT3B0aW9ucy5jdXN0b21WYWxpZGF0aW9uKHZhbGlkYXRlZCk7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgdmFsaWRhdG9yIG1hbmFnZXIgdGhhdCBoYW5kbGVzIGFkYXB0ZXIgdXBkYXRlcyBhbmQgcmVjcmVhdGlvbi5cbiAqIFRoaXMgY2VudHJhbGl6ZXMgdGhlIHVwZGF0ZSBsb2dpYyB0aGF0J3MgZHVwbGljYXRlZCBhY3Jvc3MgYWN0aW9uIGZpbGVzLlxuICpcbiAqIEBwYXJhbSBkZWZhdWx0VmFsaWRhdG9yIC0gVGhlIGRlZmF1bHQgdmFsaWRhdGlvbiBmdW5jdGlvblxuICogQHBhcmFtIGluaXRpYWxPcHRpb25zIC0gSW5pdGlhbCBhZGFwdGVyIG9wdGlvbnNcbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHZhbGlkYXRvciBhbmQgdXBkYXRlIGZ1bmN0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB7IHZhbGlkYXRvciwgdXBkYXRlQWRhcHRlciwgdXBkYXRlT3B0aW9ucyB9ID0gY3JlYXRlVmFsaWRhdG9yTWFuYWdlcihcbiAqICAgZGVmYXVsdFVzZXJWYWxpZGF0b3IsXG4gKiAgIHVzZXJBZGFwdGVyT3B0aW9uc1xuICogKTtcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVZhbGlkYXRvck1hbmFnZXIgPSA8VCBleHRlbmRzIEJhc2VBZGFwdGVyT3B0aW9ucz4oXG4gIGRlZmF1bHRWYWxpZGF0b3I6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IFQpID0+IGFueSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBpbml0aWFsT3B0aW9uczogVCA9IHt9IGFzIFRcbikgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBUID0ge30gYXMgVDtcblxuICBsZXQgYWRhcHRlck9wdGlvbnM6IFQgPSB7Li4uZGVmYXVsdE9wdGlvbnMsIC4uLmluaXRpYWxPcHRpb25zfTtcbiAgbGV0IGN1c3RvbUFkYXB0ZXI6ICgoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBUKSA9PiBhbnkpIHwgdW5kZWZpbmVkO1xuXG4gIGxldCB2YWxpZGF0b3IgPSBjcmVhdGVWYWxpZGF0b3JGYWN0b3J5KGRlZmF1bHRWYWxpZGF0b3IsIGN1c3RvbUFkYXB0ZXIsIGFkYXB0ZXJPcHRpb25zKTtcblxuICBjb25zdCB1cGRhdGVBZGFwdGVyID0gKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IFQpID0+IGFueSk6IHZvaWQgPT4ge1xuICAgIGN1c3RvbUFkYXB0ZXIgPSBhZGFwdGVyO1xuICAgIHZhbGlkYXRvciA9IGNyZWF0ZVZhbGlkYXRvckZhY3RvcnkoZGVmYXVsdFZhbGlkYXRvciwgY3VzdG9tQWRhcHRlciwgYWRhcHRlck9wdGlvbnMpO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZU9wdGlvbnMgPSAob3B0aW9uczogVCk6IHZvaWQgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgICBhZGFwdGVyT3B0aW9ucyA9IHsuLi5hZGFwdGVyT3B0aW9ucywgLi4ub3B0aW9uc30gYXMgVDtcbiAgICB2YWxpZGF0b3IgPSBjcmVhdGVWYWxpZGF0b3JGYWN0b3J5KGRlZmF1bHRWYWxpZGF0b3IsIGN1c3RvbUFkYXB0ZXIsIGFkYXB0ZXJPcHRpb25zKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGdldEN1c3RvbUFkYXB0ZXI6ICgpID0+IGN1c3RvbUFkYXB0ZXIsXG4gICAgZ2V0T3B0aW9uczogKCkgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICAgICAgY29uc3Qgb3B0aW9uczogVCA9IHsuLi5hZGFwdGVyT3B0aW9uc30gYXMgVDtcbiAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH0sXG4gICAgdXBkYXRlQWRhcHRlcixcbiAgICB1cGRhdGVPcHRpb25zLFxuICAgIHZhbGlkYXRvclxuICB9O1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUE0Qk8sTUFBTUEsRUFBeUIsQ0FDcENDLEVBQ0FDLEVBQ0FDLElBQ0csQ0FBQ0MsRUFBZ0JDLElBQXlCLENBQzdDLE1BQU1DLEVBQWdCLENBQUMsR0FBR0gsRUFBUyxHQUFHRSxDQUFnQixFQUd0RCxJQUFJRSxFQUFZTixFQUFpQkcsRUFBT0UsQ0FBa0IsRUFHMUQsT0FBR0osSUFDREssRUFBWUwsRUFBY0ssRUFBV0QsQ0FBa0IsR0FJdERBLEdBQWUsbUJBQ2hCQyxFQUFZRCxFQUFjLGlCQUFpQkMsQ0FBUyxHQUcvQ0EsQ0FDVCxFQWdCYUMsRUFBeUIsQ0FDcENQLEVBRUFRLEVBQW9CLENBQUMsSUFDbEIsQ0FJSCxJQUFJQyxFQUFvQixDQUFDLEdBRkMsQ0FBQyxFQUVpQixHQUFHRCxDQUFjLEVBQ3pEUCxFQUVBUyxFQUFZWCxFQUF1QkMsRUFBa0JDLEVBQWVRLENBQWMsRUFhdEYsTUFBTyxDQUNMLGlCQUFrQixJQUFNUixFQUN4QixXQUFZLEtBRVMsQ0FBQyxHQUFHUSxDQUFjLEdBR3ZDLGNBbEJxQkUsR0FBd0QsQ0FDN0VWLEVBQWdCVSxFQUNoQkQsRUFBWVgsRUFBdUJDLEVBQWtCQyxFQUFlUSxDQUFjLENBQ3BGLEVBZ0JFLGNBZHFCUCxHQUFxQixDQUUxQ08sRUFBaUIsQ0FBQyxHQUFHQSxFQUFnQixHQUFHUCxDQUFPLEVBQy9DUSxFQUFZWCxFQUF1QkMsRUFBa0JDLEVBQWVRLENBQWMsQ0FDcEYsRUFXRSxVQUFBQyxDQUNGLENBQ0YiLAogICJuYW1lcyI6IFsiY3JlYXRlVmFsaWRhdG9yRmFjdG9yeSIsICJkZWZhdWx0VmFsaWRhdG9yIiwgImN1c3RvbUFkYXB0ZXIiLCAib3B0aW9ucyIsICJpbnB1dCIsICJ2YWxpZGF0b3JPcHRpb25zIiwgIm1lcmdlZE9wdGlvbnMiLCAidmFsaWRhdGVkIiwgImNyZWF0ZVZhbGlkYXRvck1hbmFnZXIiLCAiaW5pdGlhbE9wdGlvbnMiLCAiYWRhcHRlck9wdGlvbnMiLCAidmFsaWRhdG9yIiwgImFkYXB0ZXIiXQp9Cg==
package/package.json CHANGED
@@ -1,18 +1,23 @@
1
1
  {
2
2
  "name": "@nlabs/metropolisjs",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MetropolisJS is a library to connect users to Reaktor",
5
+ "type": "module",
5
6
  "main": "lib/index.js",
6
- "module": "./index.js",
7
- "browser": "./index.js",
7
+ "module": "lib/index.js",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./lib/index.js",
11
+ "require": "./lib/index.js"
12
+ }
13
+ },
8
14
  "types": "./lib/index.d.ts",
9
15
  "scripts": {
10
- "build": "lex compile -r -c ./tsconfig.build.json",
16
+ "build": "lex compile --remove",
11
17
  "clean": "lex clean",
12
- "dev": "lex dev -r",
18
+ "dev": "lex dev --remove",
13
19
  "format": "npm run prettier && npm run lint",
14
- "lint": "eslint ./src/**/**.ts* --fix",
15
- "pretest": "npm run lint",
20
+ "lint": "lex lint --fix",
16
21
  "prettier": "prettier --write ./src",
17
22
  "production": "lex build",
18
23
  "publish:major": "npm version major && npm run publish:tags && npm publish",
@@ -21,8 +26,8 @@
21
26
  "publish:tags": "git push --tags && git push origin HEAD",
22
27
  "start": "lex dev -r -o",
23
28
  "test": "lex test",
24
- "update": "lex update -i",
25
- "watch": "lex compile -w"
29
+ "update": "lex update --interactive",
30
+ "watch": "lex compile --watch"
26
31
  },
27
32
  "repository": {
28
33
  "type": "git",
@@ -41,28 +46,29 @@
41
46
  },
42
47
  "license": "MIT",
43
48
  "dependencies": {
44
- "@nlabs/rip-hunter": "^2.5.2",
45
- "@nlabs/utils": "^1.4.1",
46
- "lodash": "^4.17.21",
47
- "luxon": "^2.3.1",
49
+ "@nlabs/rip-hunter": "3.0.0",
50
+ "@nlabs/utils": "2.7.5",
51
+ "luxon": "^3.7.1",
48
52
  "p-debounce": "^4.0.0",
49
- "react": "^17.0.2",
50
- "sockette": "^2.0.6"
53
+ "sockette": "^2.0.6",
54
+ "zod": "^4.0.5"
51
55
  },
52
56
  "devDependencies": {
53
- "@nlabs/arkhamjs": "^3.23.0",
54
- "@nlabs/arkhamjs-utils-react": "^3.23.0",
55
- "@types/jest": "^27.4.1",
56
- "@types/node": "^17.0.23",
57
- "@types/react": "^17.0.43",
58
- "eslint": "^8.11.0",
59
- "eslint-config-styleguidejs": "^1.6.0",
60
- "jest": "^27.5.1",
61
- "typescript": "^4.6.3"
57
+ "@jest/globals": "30.0.4",
58
+ "@nlabs/arkhamjs": "3.31.5",
59
+ "@nlabs/arkhamjs-storage-browser": "^3.30.1",
60
+ "@nlabs/arkhamjs-utils-react": "^3.32.4",
61
+ "@nlabs/lex": "^1.48.7",
62
+ "@types/jest": "^30.0.0",
63
+ "@types/node": "^24.0.15",
64
+ "@types/react": "^19.1.8",
65
+ "react": "^19.1.0",
66
+ "typescript": "^5.8.3"
62
67
  },
63
68
  "peerDependencies": {
64
- "@nlabs/arkhamjs": "^3.23.0",
65
- "@nlabs/arkhamjs-storage-browser": "^3.22.0",
66
- "@nlabs/arkhamjs-utils-react": "^3.23.0"
69
+ "@nlabs/arkhamjs": "^3.31.1",
70
+ "@nlabs/arkhamjs-storage-browser": "^3.30.0",
71
+ "@nlabs/arkhamjs-utils-react": "^3.32.0",
72
+ "react": "^19.1.0"
67
73
  }
68
74
  }
@@ -0,0 +1,25 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "noImplicitAny": false,
5
+ "noImplicitThis": false,
6
+ "noUncheckedIndexedAccess": false,
7
+ "noUnusedLocals": false,
8
+ "skipLibCheck": false,
9
+ "strict": false,
10
+ "types": [
11
+ "jest",
12
+ "node"
13
+ ],
14
+ },
15
+ "include": [
16
+ "./src/**/*.ts",
17
+ "./src/**/*.tsx",
18
+ "./src/**/*.test.ts",
19
+ "./src/**/*.test.tsx"
20
+ ],
21
+ "exclude": [
22
+ "lib",
23
+ "./node_modules"
24
+ ]
25
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": [
4
+ "src/**/*.test.ts",
5
+ "src/**/*.test.tsx",
6
+ "src/**/*.spec.ts",
7
+ "src/**/*.spec.tsx"
8
+ ],
9
+ "compilerOptions": {
10
+ "types": [
11
+ "jest"
12
+ ]
13
+ }
14
+ }