@opengis/fcore 0.0.1-beta.5 → 0.0.1-beta.7
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/dist/config.js +1 -1
- package/dist/context.js +1 -1
- package/dist/errors.js +1 -1
- package/dist/fastify.d.ts +2 -1
- package/dist/fastify.d.ts.map +1 -1
- package/dist/fastify.js +1 -1
- package/dist/fcore.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/migrations/cli.js +1 -1
- package/dist/migrations/runner.js +1 -1
- package/dist/modules/auth/adduser-cli.js +1 -1
- package/dist/modules/auth/passwd-cli.js +1 -1
- package/dist/modules/auth/permission-cli.js +1 -1
- package/dist/modules/auth/route.d.ts.map +1 -1
- package/dist/modules/auth/route.js +1 -1
- package/dist/modules/auth/schema.d.ts +3 -0
- package/dist/modules/auth/schema.d.ts.map +1 -1
- package/dist/modules/auth/schema.js +1 -1
- package/dist/modules/auth/services/change-password.js +1 -1
- package/dist/modules/auth/services/get-current-user.d.ts +1 -0
- package/dist/modules/auth/services/get-current-user.d.ts.map +1 -1
- package/dist/modules/auth/services/get-current-user.js +1 -1
- package/dist/modules/auth/services/registration.js +1 -1
- package/dist/modules/auth/services/verify-two-factor.js +1 -1
- package/dist/modules/file/mime.d.ts +3 -0
- package/dist/modules/file/mime.d.ts.map +1 -0
- package/dist/modules/file/mime.js +1 -0
- package/dist/modules/file/route.d.ts.map +1 -1
- package/dist/modules/file/route.js +1 -1
- package/dist/modules/file/schema.d.ts +3 -0
- package/dist/modules/file/schema.d.ts.map +1 -1
- package/dist/modules/file/schema.js +1 -1
- package/dist/modules/file/services/get-file.js +1 -1
- package/dist/modules/file/services/resize-file.d.ts.map +1 -1
- package/dist/modules/file/services/resize-file.js +1 -1
- package/dist/modules/file/services/upload-file.d.ts +4 -6
- package/dist/modules/file/services/upload-file.d.ts.map +1 -1
- package/dist/modules/file/services/upload-file.js +1 -1
- package/dist/modules/resource/route.d.ts +0 -3
- package/dist/modules/resource/route.d.ts.map +1 -1
- package/dist/modules/resource/route.js +1 -1
- package/dist/modules/resource/schema.d.ts +3 -0
- package/dist/modules/resource/schema.d.ts.map +1 -1
- package/dist/modules/resource/schema.js +1 -1
- package/dist/modules/resource/services/add-note.js +1 -1
- package/dist/modules/resource/services/add-resource-file.js +1 -1
- package/dist/modules/resource/services/create-resource-relation.js +1 -1
- package/dist/modules/resource/services/create-resource.js +1 -1
- package/dist/modules/resource/services/delete-resource-relation.js +1 -1
- package/dist/modules/resource/services/delete-resource.js +1 -1
- package/dist/modules/resource/services/export-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/export-resource.js +1 -1
- package/dist/modules/resource/services/get-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/get-resource.js +1 -1
- package/dist/modules/resource/services/list-resource-relation.d.ts +2 -0
- package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
- package/dist/modules/resource/services/list-resource-relation.js +1 -1
- package/dist/modules/resource/services/list-resources.d.ts.map +1 -1
- package/dist/modules/resource/services/list-resources.js +1 -1
- package/dist/modules/resource/services/search-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/search-resource.js +1 -1
- package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/suggest-resource.js +1 -1
- package/dist/modules/resource/services/update-resource-relation.d.ts +10 -0
- package/dist/modules/resource/services/update-resource-relation.d.ts.map +1 -0
- package/dist/modules/resource/services/update-resource-relation.js +1 -0
- package/dist/modules/resource/services/update-resource.js +1 -1
- package/dist/modules/resource/services/upload-resource-file.js +1 -1
- package/dist/modules/system/route.d.ts.map +1 -1
- package/dist/modules/system/route.js +1 -1
- package/dist/modules/system/schema.js +1 -1
- package/dist/modules/system/services/check-system.d.ts.map +1 -1
- package/dist/modules/system/services/check-system.js +1 -1
- package/dist/modules/system/services/get-access.d.ts.map +1 -1
- package/dist/modules/system/services/get-access.js +1 -1
- package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
- package/dist/modules/system/services/get-api-list.js +1 -1
- package/dist/modules/system/services/get-audit-log.d.ts.map +1 -1
- package/dist/modules/system/services/get-audit-log.js +1 -1
- package/dist/modules/system/services/get-dictionary.js +1 -1
- package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
- package/dist/modules/system/services/get-system-log.js +1 -1
- package/dist/modules/system/services/get-system-settings.d.ts.map +1 -1
- package/dist/modules/system/services/get-system-settings.js +1 -1
- package/dist/modules/system/services/list-dictionaries.js +1 -1
- package/dist/modules/system/services/set-access.d.ts.map +1 -1
- package/dist/modules/system/services/set-access.js +1 -1
- package/dist/modules/system/services/update-dictionary.d.ts.map +1 -1
- package/dist/modules/system/services/update-dictionary.js +1 -1
- package/dist/modules/system/services/update-system-settings.d.ts.map +1 -1
- package/dist/modules/system/services/update-system-settings.js +1 -1
- package/dist/modules/utils/require-admin.js +1 -1
- package/dist/modules/utils/safe-user.js +1 -1
- package/dist/modules/utils/unsupported.js +1 -1
- package/dist/plugins/audit/audit.js +1 -1
- package/dist/plugins/audit/index.js +1 -1
- package/dist/plugins/audit/services/write-audit.js +1 -1
- package/dist/plugins/auth/get-user-permissions.js +1 -1
- package/dist/plugins/auth/index.js +1 -1
- package/dist/plugins/auth/verifyUser.js +1 -1
- package/dist/plugins/dictionary.d.ts +3 -0
- package/dist/plugins/dictionary.d.ts.map +1 -1
- package/dist/plugins/dictionary.js +1 -1
- package/dist/plugins/file.d.ts +3 -6
- package/dist/plugins/file.d.ts.map +1 -1
- package/dist/plugins/file.js +1 -1
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/jwt.d.ts +4 -0
- package/dist/plugins/jwt.d.ts.map +1 -0
- package/dist/plugins/jwt.js +1 -0
- package/dist/plugins/logger/index.js +1 -1
- package/dist/plugins/logger/transport.js +1 -1
- package/dist/plugins/pg.d.ts.map +1 -1
- package/dist/plugins/pg.js +1 -1
- package/dist/plugins/redis.js +1 -1
- package/dist/plugins/resource/index.js +1 -1
- package/dist/plugins/resource/resource.d.ts.map +1 -1
- package/dist/plugins/resource/resource.js +1 -1
- package/dist/plugins/resource/resource.registry.js +1 -1
- package/dist/plugins/resource/resource.types.d.ts +18 -3
- package/dist/plugins/resource/resource.types.d.ts.map +1 -1
- package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts +3 -0
- package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts.map +1 -0
- package/dist/plugins/resource/services/add-dictionary-lookup-data.js +1 -0
- package/dist/plugins/resource/services/add-file-token.d.ts +3 -0
- package/dist/plugins/resource/services/add-file-token.d.ts.map +1 -0
- package/dist/plugins/resource/services/add-file-token.js +1 -0
- package/dist/plugins/resource/services/add-table-lookup-data.d.ts +4 -0
- package/dist/plugins/resource/services/add-table-lookup-data.d.ts.map +1 -0
- package/dist/plugins/resource/services/add-table-lookup-data.js +1 -0
- package/dist/plugins/resource/services/create-relation.js +1 -1
- package/dist/plugins/resource/services/create.d.ts.map +1 -1
- package/dist/plugins/resource/services/create.js +1 -1
- package/dist/plugins/resource/services/delete-relation.js +1 -1
- package/dist/plugins/resource/services/delete.d.ts.map +1 -1
- package/dist/plugins/resource/services/delete.js +1 -1
- package/dist/plugins/resource/services/find-one.d.ts +3 -2
- package/dist/plugins/resource/services/find-one.d.ts.map +1 -1
- package/dist/plugins/resource/services/find-one.js +1 -1
- package/dist/plugins/resource/services/find-relation.d.ts +3 -2
- package/dist/plugins/resource/services/find-relation.d.ts.map +1 -1
- package/dist/plugins/resource/services/find-relation.js +1 -1
- package/dist/plugins/resource/services/find.d.ts.map +1 -1
- package/dist/plugins/resource/services/find.js +1 -1
- package/dist/plugins/resource/services/update-relation.d.ts +11 -0
- package/dist/plugins/resource/services/update-relation.d.ts.map +1 -0
- package/dist/plugins/resource/services/update-relation.js +1 -0
- package/dist/plugins/resource/services/update.d.ts.map +1 -1
- package/dist/plugins/resource/services/update.js +1 -1
- package/dist/plugins/resource/utils/auto-index.d.ts +4 -0
- package/dist/plugins/resource/utils/auto-index.d.ts.map +1 -0
- package/dist/plugins/resource/utils/auto-index.js +1 -0
- package/dist/plugins/resource/utils/fields.js +1 -1
- package/dist/plugins/resource/utils/filters.d.ts +3 -2
- package/dist/plugins/resource/utils/filters.d.ts.map +1 -1
- package/dist/plugins/resource/utils/filters.js +1 -1
- package/dist/plugins/resource/utils/permissions.js +1 -1
- package/dist/plugins/resource/utils/sort.d.ts.map +1 -1
- package/dist/plugins/resource/utils/sort.js +1 -1
- package/dist/plugins/resource/utils/sql.js +1 -1
- package/dist/shared/getIP.js +1 -1
- package/migrations/20260905120000_add_user_foreign_keys.sql +42 -42
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{ValidationError}from'../../../errors.js';export{readableFields,writableData,fieldColumn}from'./sql.js';const validateInputData=({resource:C,data:N,update:update=![]})=>{const c=z;for(const [r,p]of Object[c(0x1d9)](C[c(0x1da)])){if(p['required']&&p['writable']!==![]&&(N[r]===undefined||N[r]===null)&&!update)throw new ValidationError(c(0x1db)+r);if(p['required']&&p['writable']!==![]&&Object['hasOwn'](N,r)&&(N[r]===undefined||N[r]===null)&&update)throw new ValidationError('Required\x20field:\x20'+r);if(p[c(0x1dc)]&&typeof N[r]===c(0x1dd)&&N[r]['length']<p['minLength'])throw new ValidationError('minLength\x20not\x20met:\x20'+r);if(p['maxLength']&&typeof N[r]==='string'&&N[r]['length']>p['maxLength'])throw new ValidationError(c(0x1de)+r);if(p['minimum']&&typeof N[r]==='number'&&N[r]<p['minimum'])throw new ValidationError(r+'\x20should\x20be\x20>=\x20'+p[c(0x1df)]);if(p['maximum']&&typeof N[r]==='number'&&N[r]>p[c(0x1e0)])throw new ValidationError(r+'\x20should\x20be\x20<=\x20'+p['maximum']);if(p[c(0x1e1)]&&N[r]&&!p['enum'][c(0x1e2)](N[r]))throw new ValidationError(r+c(0x1e3)+p['enum']['join'](',\x20')+')');if(p['pattern']&&typeof N[r]==='string'&&!new RegExp(p['pattern'])[c(0x1e4)](N[r]))throw new ValidationError(r+'\x20should\x20match\x20regular\x20expression\x20('+p['pattern']+')');}};function U(){const x=['entries','fields','Required\x20field:\x20','minLength','string','maxLength\x20exceeded:\x20','minimum','maximum','enum','includes','\x20should\x20be\x20one\x20of\x20(','test'];U=function(){return x;};return U();}function z(C,N){C=C-0x1d9;const r=U();let p=r[C];return p;}export{validateInputData};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provides Resource helpers for filters handling.
|
|
3
3
|
*/
|
|
4
|
-
import type { ResourceContract } from '../resource.types.js';
|
|
5
|
-
export declare function
|
|
4
|
+
import type { ResourceContract, ResourceDependencies } from '../resource.types.js';
|
|
5
|
+
export declare function parseFilterQuery(query: Record<string, unknown>): Record<string, unknown> | undefined;
|
|
6
|
+
export declare function buildFilters(resource: ResourceContract, filter: Record<string, unknown> | undefined, start?: number, pg?: ResourceDependencies['pg']): {
|
|
6
7
|
sql: string;
|
|
7
8
|
values: unknown[];
|
|
8
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/utils/filters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/utils/filters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AASnF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CA2BpG;AAED,wBAAgB,YAAY,CACxB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,KAAK,SAAI,EACT,EAAE,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC;;;EAgElC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
const D=z;import{fieldColumn,qi}from'./sql.js';import{ValidationError}from'../../../errors.js';import{autoIndex}from'./auto-index.js';const filterOperators=new Set(['eq','ne','gt','gte','lt','lte','in','nin','like','ilike',D(0x180)]);function z(C,N){C=C-0x180;const r=U();let p=r[C];return p;}export function parseFilterQuery(C){const d=D,N={...isRecord(C['filter'])?C[d(0x181)]:{}};for(const [r,p]of Object['entries'](C)){const c=/^filter\[([^\]]+)\](?:\[([^\]]+)\])?$/[d(0x182)](r);if(!c)continue;const [,x,m]=c;if(!x)continue;if(!m){N[x]=p;continue;}if(!filterOperators['has'](m))throw new ValidationError('Unsupported\x20filter\x20operator:\x20'+m);const Q=isRecord(N[x])?N[x]:{};Q[m]=(m==='in'||m==='nin')&&typeof p===d(0x183)?p['split'](','):p,N[x]=Q;}return Object[d(0x184)](N)['length']?N:undefined;}function U(){const a=['null','filter','exec','string','keys','has','isArray','push','TRUE','<>\x20ALL','like',')\x20like\x20lower(','object','true','geom','geometry','gist','btree'];U=function(){return a;};return U();}export function buildFilters(C,N,r=0x1,p){const V=D,c=[],x=[];for(const [m,Q]of Object['entries'](N??{})){const u=C['fields'][m];if(!u||u['filter']!==!![]&&u['filterable']!==!![])throw new ValidationError('Field\x20is\x20not\x20filterable:\x20'+m);const L=qi(fieldColumn(C,m)),T=isRecord(Q)?Q:{'eq':Q};for(const [Y,f]of Object['entries'](T)){if(!filterOperators[V(0x185)](Y))throw new ValidationError('Unsupported\x20filter\x20operator:\x20'+Y);if((Y==='like'||Y==='ilike')&&u['type']!=='string'&&u['type']!=='text')throw new ValidationError('Operator\x20'+Y+'\x20requires\x20a\x20text\x20field:\x20'+m);p&&autoIndex(C['table'],fieldColumn(C,m),indexTypeFor(u['type'],Y),p);if(Y==='null'){c['push'](L+'\x20IS\x20'+(isTruthy(f)?'':'NOT\x20')+'NULL');continue;}if(Y==='in'||Y==='nin'){const h=Array[V(0x186)](f)?f:[f];if(h['length']===0x0){c[V(0x187)](Y==='in'?'FALSE':V(0x188));continue;}x['push'](h),c['push'](L+'\x20'+(Y==='in'?'=\x20ANY':V(0x189))+'($'+(r+x['length']-0x1)+')');continue;}const F={'eq':'=','ne':'<>','gt':'>','gte':'>=','lt':'<','lte':'<=','like':'like'},t='$'+(r+x['length']);if(Y===V(0x18a)){x['push'](f+'%'),c[V(0x187)]('lower('+L+V(0x18b)+t+')');continue;}x['push'](f),c['push'](L+'\x20'+F[Y]+'\x20'+t);}}return{'sql':c['length']?'\x20WHERE\x20'+c['join']('\x20AND\x20'):'','values':x};}function isRecord(C){const q=D;return typeof C===q(0x18c)&&C!==null&&!Array[q(0x186)](C);}function isTruthy(C){const w=D;return C===!![]||C===w(0x18d)||C==='1'||C===0x1;}function indexTypeFor(C,N){const O=D;if(N==='like'||N==='ilike')return'text';if(C===O(0x18e)||C===O(0x18f))return O(0x190);return O(0x191);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function z(C,N){C=C-0xd0;const r=U();let p=r[C];return p;}function U(){const m=['config','access','public','Authentication\x20required','Admin\x20access\x20required','type','admin','includes','Missing\x20permission:\x20'];U=function(){return m;};return U();}import{ForbiddenError}from'../../../errors.js';import{getContext}from'../../../index.js';export function assertOperation(C,N,r){const x=z,p=getContext()[x(0xd0)];if(p['debug'])return;if(!C['operations']['includes'](N))throw new ForbiddenError(C['name']+'.'+N+'\x20is\x20disabled');if(C[x(0xd1)]!==x(0xd2)&&r===undefined)throw new ForbiddenError(x(0xd3));if(C['access']==='admin'&&r?.['type']!=='admin')throw new ForbiddenError(x(0xd4));if(r?.[x(0xd5)]!==x(0xd6)){const c=(C['permission']??C['name'])+':'+N;if(!r?.['permissions']?.[x(0xd7)](c))throw new ForbiddenError(x(0xd8)+c);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/utils/sort.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../../src/plugins/resource/utils/sort.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,UAgBpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{fieldColumn,qi}from'./sql.js';import{ValidationError}from'../../../errors.js';function z(C,N){C=C-0x6f;const r=U();let p=r[C];return p;}function U(){const L=['slice','sort'];U=function(){return L;};return U();}export function buildSort(C,N){if(!N?.['length'])return'';typeof N==='string'&&(N=[N]);const r=N['map'](p=>{const u=z,c=p['startsWith']('-'),m=c?p[u(0x6f)](0x1):p,Q=C['fields'][m];if(!Q||Q[u(0x70)]!==!![]&&Q['sortable']!==!![])throw new ValidationError('Field\x20is\x20not\x20sortable:\x20'+m);return qi(fieldColumn(C,m))+'\x20'+(c?'DESC':'ASC');});return'\x20ORDER\x20BY\x20'+r['join'](',\x20');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const m=z;import{ValidationError}from'../../../errors.js';export const quoteIdentifier=C=>'\x22'+C['replace'](/"/g,'\x22\x22')+'\x22';function z(C,N){C=C-0xa1;const r=U();let p=r[C];return p;}export const quoteTable=C=>C['split']('.')['map'](quoteIdentifier)[m(0xa1)]('.');function U(){const T=['join','key','fields','column','map','\x20AS\x20'];U=function(){return T;};return U();}export function fieldColumn(C,N){const Q=m;if(N===C[Q(0xa2)])return C[Q(0xa2)];const r=C[Q(0xa3)][N];if(!r)throw new ValidationError('Unknown\x20field:\x20'+N);return r[Q(0xa4)]??N;}export function readableFields(C){const u=m,N=Object['entries'](C['fields'])['filter'](([,r])=>r['read']!==![]&&r['readable']!==![])[u(0xa5)](([r,p])=>quoteIdentifier(p['column']??r)+u(0xa6)+quoteIdentifier(r));return!C[u(0xa3)][C[u(0xa2)]]&&N['unshift'](quoteIdentifier(C['key'])),N;}export function writableData(C,N){const L=m,r=[];for(const [p,c]of Object['entries'](N)){const x=C[L(0xa3)][p];if(!x||x['write']===![]||x['writable']===![])throw new ValidationError('Field\x20is\x20not\x20writable:\x20'+p);r['push']([x['column']??p,c]);}return r;}export const qi=quoteIdentifier;export const qt=quoteTable;
|
package/dist/shared/getIP.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function z(C,N){C=C-0x123;const r=U();let p=r[C];return p;}const N=z,getIP=C=>(C['headers']?.[N(0x123)]||C[N(0x124)]?.[N(0x125)]||C['ip']||C['connection']?.['remoteAddress']||'')['split'](':')[N(0x126)]();function U(){const r=['x-real-ip','headers','x-forwarded-for','pop'];U=function(){return r;};return U();}export default getIP;
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
ALTER TABLE admin.users
|
|
2
|
-
ADD CONSTRAINT users_created_by_fkey
|
|
3
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
4
|
-
ADD CONSTRAINT users_updated_by_fkey
|
|
5
|
-
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
6
|
-
|
|
7
|
-
ALTER TABLE admin.user_roles
|
|
8
|
-
ADD CONSTRAINT user_roles_created_by_fkey
|
|
9
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
10
|
-
ADD CONSTRAINT user_roles_updated_by_fkey
|
|
11
|
-
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
12
|
-
|
|
13
|
-
ALTER TABLE admin.role_access
|
|
14
|
-
ADD CONSTRAINT role_access_user_uid_fkey
|
|
15
|
-
FOREIGN KEY (user_uid) REFERENCES admin.users(uid) ON DELETE CASCADE,
|
|
16
|
-
ADD CONSTRAINT role_access_created_by_fkey
|
|
17
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
18
|
-
ADD CONSTRAINT role_access_updated_by_fkey
|
|
19
|
-
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
20
|
-
|
|
21
|
-
ALTER TABLE admin.dictionaries
|
|
22
|
-
ADD CONSTRAINT dictionaries_created_by_fkey
|
|
23
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
24
|
-
ADD CONSTRAINT dictionaries_updated_by_fkey
|
|
25
|
-
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
26
|
-
|
|
27
|
-
ALTER TABLE admin.notes
|
|
28
|
-
ADD CONSTRAINT notes_created_by_fkey
|
|
29
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
30
|
-
ADD CONSTRAINT notes_updated_by_fkey
|
|
31
|
-
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
32
|
-
|
|
33
|
-
ALTER TABLE admin.files
|
|
34
|
-
ADD CONSTRAINT files_created_by_fkey
|
|
35
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
36
|
-
ADD CONSTRAINT files_updated_by_fkey
|
|
37
|
-
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
38
|
-
|
|
39
|
-
ALTER TABLE admin.settings
|
|
40
|
-
ADD CONSTRAINT settings_created_by_fkey
|
|
41
|
-
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
42
|
-
ADD CONSTRAINT settings_updated_by_fkey
|
|
1
|
+
ALTER TABLE admin.users
|
|
2
|
+
ADD CONSTRAINT users_created_by_fkey
|
|
3
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
4
|
+
ADD CONSTRAINT users_updated_by_fkey
|
|
5
|
+
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
6
|
+
|
|
7
|
+
ALTER TABLE admin.user_roles
|
|
8
|
+
ADD CONSTRAINT user_roles_created_by_fkey
|
|
9
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
10
|
+
ADD CONSTRAINT user_roles_updated_by_fkey
|
|
11
|
+
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
12
|
+
|
|
13
|
+
ALTER TABLE admin.role_access
|
|
14
|
+
ADD CONSTRAINT role_access_user_uid_fkey
|
|
15
|
+
FOREIGN KEY (user_uid) REFERENCES admin.users(uid) ON DELETE CASCADE,
|
|
16
|
+
ADD CONSTRAINT role_access_created_by_fkey
|
|
17
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
18
|
+
ADD CONSTRAINT role_access_updated_by_fkey
|
|
19
|
+
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
20
|
+
|
|
21
|
+
ALTER TABLE admin.dictionaries
|
|
22
|
+
ADD CONSTRAINT dictionaries_created_by_fkey
|
|
23
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
24
|
+
ADD CONSTRAINT dictionaries_updated_by_fkey
|
|
25
|
+
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
26
|
+
|
|
27
|
+
ALTER TABLE admin.notes
|
|
28
|
+
ADD CONSTRAINT notes_created_by_fkey
|
|
29
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
30
|
+
ADD CONSTRAINT notes_updated_by_fkey
|
|
31
|
+
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
32
|
+
|
|
33
|
+
ALTER TABLE admin.files
|
|
34
|
+
ADD CONSTRAINT files_created_by_fkey
|
|
35
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
36
|
+
ADD CONSTRAINT files_updated_by_fkey
|
|
37
|
+
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
|
38
|
+
|
|
39
|
+
ALTER TABLE admin.settings
|
|
40
|
+
ADD CONSTRAINT settings_created_by_fkey
|
|
41
|
+
FOREIGN KEY (created_by) REFERENCES admin.users(uid) ON DELETE SET NULL,
|
|
42
|
+
ADD CONSTRAINT settings_updated_by_fkey
|
|
43
43
|
FOREIGN KEY (updated_by) REFERENCES admin.users(uid) ON DELETE SET NULL;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengis/fcore",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.7",
|
|
4
4
|
"description": "Reusable backend foundation for OpenGIS Node.js applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -53,7 +53,6 @@
|
|
|
53
53
|
"node": ">=20"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@sinclair/typebox": "^0.34.52",
|
|
57
56
|
"@aws-sdk/client-s3": "3.1125.0",
|
|
58
57
|
"@aws-sdk/lib-storage": "3.1125.0",
|
|
59
58
|
"@fastify/cookie": "11.1.2",
|
|
@@ -61,11 +60,13 @@
|
|
|
61
60
|
"@fastify/passport": "4.0.2",
|
|
62
61
|
"@fastify/rate-limit": "11.2.0",
|
|
63
62
|
"@fastify/session": "11.1.2",
|
|
63
|
+
"@sinclair/typebox": "^0.34.52",
|
|
64
64
|
"apache-crypt": "1.2.6",
|
|
65
65
|
"dotenv": "17.4.2",
|
|
66
66
|
"fastify-session-redis-store": "7.1.2",
|
|
67
67
|
"file-type": "22.0.2",
|
|
68
68
|
"ioredis": "6.0.0",
|
|
69
|
+
"jose": "^6.2.12",
|
|
69
70
|
"otplib": "13.5.0",
|
|
70
71
|
"pg": "8.23.0",
|
|
71
72
|
"pino": "10.3.1",
|