modelence 0.5.6 → 0.5.7-dev.10
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/README.md +7 -3
- package/dist/bin/modelence.js +2 -2
- package/dist/bin/modelence.js.map +1 -1
- package/dist/chunk-2ZGVP5SA.js +3 -0
- package/dist/chunk-2ZGVP5SA.js.map +1 -0
- package/dist/client.d.ts +39 -2
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/package-6RLX625C.js +3 -0
- package/dist/package-6RLX625C.js.map +1 -0
- package/dist/server.d.ts +33 -29
- package/dist/server.js +5 -3
- package/dist/server.js.map +1 -1
- package/dist/telemetry.js +1 -1
- package/package.json +6 -1
- package/LICENSE +0 -23
- package/dist/chunk-F5MTZMFH.js +0 -3
- package/dist/chunk-F5MTZMFH.js.map +0 -1
- package/dist/package-OHMY7GK6.js +0 -3
- package/dist/package-OHMY7GK6.js.map +0 -1
package/dist/telemetry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{k as captureError,i as logError,h as logInfo,j as startTransaction}from'./chunk-
|
|
1
|
+
export{k as captureError,i as logError,h as logInfo,j as startTransaction}from'./chunk-2ZGVP5SA.js';//# sourceMappingURL=telemetry.js.map
|
|
2
2
|
//# sourceMappingURL=telemetry.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "modelence",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.7-dev.10",
|
|
5
5
|
"description": "The Node.js Framework for Real-Time MongoDB Apps",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/global.d.ts",
|
|
@@ -39,9 +39,11 @@
|
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/archiver": "^6.0.3",
|
|
41
41
|
"@types/bcrypt": "^5.0.2",
|
|
42
|
+
"@types/cookie-parser": "^1.4.9",
|
|
42
43
|
"@types/express": "^5.0.0",
|
|
43
44
|
"@types/fs-extra": "^11.0.4",
|
|
44
45
|
"@types/node": "^22.5.1",
|
|
46
|
+
"@types/passport-google-oauth20": "^2.0.16",
|
|
45
47
|
"@types/react": "^19.0.0",
|
|
46
48
|
"@types/react-dom": "^19.0.1",
|
|
47
49
|
"@typescript-eslint/eslint-plugin": "^8.17.0",
|
|
@@ -57,6 +59,7 @@
|
|
|
57
59
|
"archiver": "^7.0.1",
|
|
58
60
|
"bcrypt": "^5.1.1",
|
|
59
61
|
"commander": "^12.0.0",
|
|
62
|
+
"cookie-parser": "^1.4.7",
|
|
60
63
|
"dotenv": "^16.4.5",
|
|
61
64
|
"elastic-apm-node": "^4.8.0",
|
|
62
65
|
"express": "^4.21.0",
|
|
@@ -64,6 +67,8 @@
|
|
|
64
67
|
"jiti": "^2.4.2",
|
|
65
68
|
"mongodb": "^6.8.1",
|
|
66
69
|
"open": "^10.1.0",
|
|
70
|
+
"passport": "^0.7.0",
|
|
71
|
+
"passport-google-oauth20": "^2.0.0",
|
|
67
72
|
"tsup": "^8.3.6",
|
|
68
73
|
"tsx": "^4.19.3",
|
|
69
74
|
"vite": "^6.0.3",
|
package/LICENSE
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2024 Modelence
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
of this software and associated documentation files (the "Software"), to use,
|
|
5
|
-
copy, modify, and/or merge copies of the Software, and to permit persons to whom
|
|
6
|
-
the Software is furnished to do so, subject to the following conditions:
|
|
7
|
-
|
|
8
|
-
1. The Software may not be used for commercial purposes without explicit
|
|
9
|
-
written permission from Modelence.
|
|
10
|
-
|
|
11
|
-
2. The above copyright notice and this permission notice shall be included in all
|
|
12
|
-
copies or substantial portions of the Software.
|
|
13
|
-
|
|
14
|
-
3. Redistributions of the Software must retain this license terms and may not
|
|
15
|
-
be sold without explicit written permission from Modelence.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
-
SOFTWARE.
|
package/dist/chunk-F5MTZMFH.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import _ from'elastic-apm-node';import y from'winston';import {ElasticsearchTransport}from'winston-elasticsearch';import l from'process';var g={},u={},v=false;function f(t){return u[t]?.value}function W(){if(!v)throw new Error("Config is not initialized: an attempt was made to access configs before they were loaded");return Object.fromEntries(Object.entries(u).filter(([t])=>g[t]?.isPublic))}function R(t){t.forEach(({key:e,type:o,value:n})=>{!e.toLowerCase().startsWith("_system.")&&!g[e]||(u[e]={key:e,type:o,value:n});}),v=true;}function D(t){Object.entries(t).forEach(([e,o])=>{let{type:n,isPublic:r}=o;if(e.toLowerCase().startsWith("_system."))throw new Error(`Config key cannot start with a reserved prefix: '_system.' (${e})`);if(n==="secret"&&r)throw new Error(`Config ${e} with type "secret" cannot be public`)}),g=t;}var i={stdout:[{log:"",timestamp:null}],stderr:[{log:"",timestamp:null}]},z=1;function L({elasticCloudId:t,elasticApiKey:e}){let o=l.stdout.write,n=l.stderr.write;l.stdout.write=function(r,...c){return b(r.toString(),i.stdout),o.call(l.stdout,r,...c)},l.stderr.write=function(r,...c){return b(r.toString(),i.stderr),n.call(l.stderr,r,...c)},x();}function b(t,e){if(t.length===0)return;let o=new Date;for(let n=0;n<t.length;n++){let r=e[e.length-1];r.timestamp||(r.timestamp=o,r.sequenceId=z++),t[n]===`
|
|
2
|
-
`?e.push({log:"",timestamp:null}):r.log+=t[n];}}async function B(){let t=i.stdout.slice(0,-1);i.stdout=[i.stdout[i.stdout.length-1]];let e=i.stderr.slice(0,-1);i.stderr=[i.stderr[i.stderr.length-1]],t.forEach(({log:o,timestamp:n,sequenceId:r})=>{m(o,{timestamp:n,source:"console",sequenceId:r});}),e.forEach(({log:o,timestamp:n,sequenceId:r})=>{d(o,{timestamp:n,source:"console",sequenceId:r});});}function x(){setTimeout(()=>{B(),x();},1e3);}var s=null;function J(){}function Q(t){s=Object.assign({},s,t);}function S(){return s?.environmentId}function I(){return s?.appAlias}function T(){return s?.environmentAlias}function K(){return s?.telemetry?.serviceName}function a(){return !!s?.telemetry?.isEnabled}var M=false,p=null,E=null,rt=async()=>{if(M)throw new Error('Metrics are already initialized, duplicate "initMetrics" call received');M=true,a()&&await O();};async function O(){let t=f("_system.elastic.apmEndpoint"),e=f("_system.elastic.cloudId"),o=f("_system.elastic.apiKey"),n=I()??"unknown",r=T()??"unknown",c=S()??"unknown",C=K();p=_.start({serviceName:C,apiKey:o,serverUrl:t,transactionSampleRate:1,centralConfig:false,globalLabels:{modelenceEnv:"dev",appEnv:"dev",environmentId:c,appAlias:n,environmentAlias:r}});let h=new ElasticsearchTransport({apm:p,level:"debug",clientOpts:{cloud:{id:e},auth:{apiKey:o},requestTimeout:1e4,tls:{rejectUnauthorized:false}},bufferLimit:1e3,silent:false});h.on("error",j=>{console.error("Elasticsearch Transport Error:",j);}),E=y.createLogger({level:"debug",defaultMeta:{serviceName:C},format:y.format.combine(y.format.json()),transports:[h]}),L({elasticCloudId:e,elasticApiKey:o});}function A(){if(!p)throw new Error("APM is not initialized");return p}function w(){if(!E)throw new Error("Logger is not initialized");return E}function m(t,e){a()&&w().info(t,e);}function d(t,e){a()&&w().error(t,e);}function q(t,e,o){if(!a())return {end:()=>{}};let n=A(),r=n.startTransaction(e,t);return o&&n.setCustomContext(o),r}function U(t){if(!a()){console.error(t);return}A().captureError(t);}export{f as a,W as b,R as c,D as d,J as e,Q as f,rt as g,m as h,d as i,q as j,U as k};//# sourceMappingURL=chunk-F5MTZMFH.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-F5MTZMFH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config/server.ts","../src/app/loggerProcess.ts","../src/app/state.ts","../src/app/metrics.ts","../src/telemetry/index.ts"],"names":["configSchema","config","isInitialized","getConfig","key","getPublicConfigs","loadConfigs","configs","type","value","setSchema","schema","isPublic","buffer","sequenceId","startLoggerProcess","elasticCloudId","elasticApiKey","originalStdoutWrite","process","originalStderrWrite","chunk","args","addToBuffer","loopSendLogs","timestamp","i","current","sendLogs","stdoutLogs","stderrLogs","log","logInfo","logError","metadata","markAppStarted","setMetadata","_metadata","getEnvironmentId","getAppAlias","getEnvironmentAlias","getTelemetryServiceName","isTelemetryEnabled","apm","logger","initMetrics","initElasticApm","elasticApmEndpoint","appAlias","environmentAlias","environmentId","serviceName","elasticApm","esTransport","ElasticsearchTransport","error","winston","getApm","getLogger","message","startTransaction","name","context","transaction","captureError"],"mappings":"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","file":"chunk-F5MTZMFH.js","sourcesContent":["import { ConfigKey, AppConfig, ConfigSchema } from './types';\n\nlet configSchema: ConfigSchema = {};\nlet config: Record<ConfigKey, AppConfig> = {};\nlet isInitialized = false;\n\n/**\n * @sidebarTitle getConfig (server)\n * \n * @param key\n * @returns \n */\nexport function getConfig(key: ConfigKey) {\n return config[key]?.value;\n}\n\nexport function getPublicConfigs() {\n if (!isInitialized) {\n throw new Error('Config is not initialized: an attempt was made to access configs before they were loaded');\n }\n\n return Object.fromEntries(\n Object.entries(config).filter(([key]) => configSchema[key]?.isPublic)\n );\n}\n\nexport function loadConfigs(configs: AppConfig[]) {\n configs.forEach(({ key, type, value }) => {\n const isSystemConfig = key.toLowerCase().startsWith('_system.');\n\n if (!isSystemConfig && !configSchema[key]) {\n // Ignore unknown configs\n return;\n }\n\n config[key] = {\n key,\n type,\n value\n };\n });\n\n isInitialized = true;\n}\n\nexport function setSchema(schema: ConfigSchema) {\n // TODO: more validation on the schema structure\n Object.entries(schema).forEach(([key, value]) => {\n const { type, isPublic } = value;\n\n if (key.toLowerCase().startsWith('_system.')) {\n throw new Error(`Config key cannot start with a reserved prefix: '_system.' (${key})`);\n }\n\n if (type === 'secret' && isPublic) {\n throw new Error(`Config ${key} with type \"secret\" cannot be public`);\n }\n });\n\n configSchema = schema;\n}\n","// import { spawn } from 'child_process';\n// import { fileURLToPath } from 'url';\n// import { dirname, join } from 'path';\nimport { logInfo, logError } from '@/telemetry';\nimport process from 'process';\n\ntype LogEntry = { log: string, timestamp: Date | null, sequenceId?: number };\ntype LogBuffer = LogEntry[];\n\nconst buffer: { stdout: LogBuffer, stderr: LogBuffer } = {\n stdout: [{ log: '', timestamp: null }],\n stderr: [{ log: '', timestamp: null }]\n}\n\nlet sequenceId = 1;\n\nexport function startLoggerProcess({ elasticCloudId, elasticApiKey }: { elasticCloudId: string, elasticApiKey: string }) {\n const originalStdoutWrite = process.stdout.write;\n const originalStderrWrite = process.stderr.write;\n\n process.stdout.write = function(chunk: string | Uint8Array, ...args: any[]) {\n addToBuffer(chunk.toString(), buffer.stdout);\n return originalStdoutWrite.call(process.stdout, chunk, ...args);\n };\n\n process.stderr.write = function(chunk: string | Uint8Array, ...args: any[]) {\n addToBuffer(chunk.toString(), buffer.stderr);\n return originalStderrWrite.call(process.stderr, chunk, ...args);\n };\n\n loopSendLogs();\n\n // const currentFilePath = fileURLToPath(import.meta.url);\n // const projectRoot = dirname(dirname(currentFilePath));\n // const loggerPath = join(projectRoot, 'bin', 'modelence-logger', 'index.js');\n // const logger = spawn(process.execPath, [loggerPath], {\n // env: {\n // NODE_ENV: process.env.NODE_ENV,\n // ELASTIC_CLOUD_ID: elasticCloudId,\n // ELASTIC_API_KEY: elasticApiKey\n // },\n // stdio: ['pipe', 'inherit', 'inherit'],\n // detached: true\n // });\n\n // const originalStdoutWrite = process.stdout.write;\n // const originalStderrWrite = process.stderr.write;\n\n // process.stdout.write = function(chunk: any, ...args: any[]) {\n // logger.stdin.write(chunk);\n // return originalStdoutWrite.apply(process.stdout, [chunk, ...args]);\n // };\n\n // process.stderr.write = function(chunk: any, ...args: any[]) {\n // logger.stdin.write(chunk);\n // return originalStderrWrite.apply(process.stderr, [chunk, ...args]);\n // };\n\n // process.on('exit', () => {\n // process.stdout.write = originalStdoutWrite;\n // process.stderr.write = originalStderrWrite;\n // });\n\n // logger.unref();\n}\n\nfunction addToBuffer(chunk: string, buffer: LogBuffer) {\n if (chunk.length === 0) {\n return;\n }\n\n const timestamp = new Date();\n\n for (let i = 0; i < chunk.length; i++) {\n const current = buffer[buffer.length - 1];\n if (!current.timestamp) {\n current.timestamp = timestamp;\n current.sequenceId = sequenceId++;\n }\n\n if (chunk[i] === '\\n') {\n buffer.push({ log: '', timestamp: null });\n } else {\n current.log += chunk[i];\n }\n }\n}\n\n\nasync function sendLogs() {\n const stdoutLogs = buffer.stdout.slice(0, -1);\n buffer.stdout = [buffer.stdout[buffer.stdout.length - 1]];\n\n const stderrLogs = buffer.stderr.slice(0, -1);\n buffer.stderr = [buffer.stderr[buffer.stderr.length - 1]];\n\n stdoutLogs.forEach(({ log, timestamp, sequenceId }: LogEntry) => {\n logInfo(log, { timestamp, source: 'console', sequenceId });\n });\n stderrLogs.forEach(({ log, timestamp, sequenceId }: LogEntry) => {\n logError(log, { timestamp, source: 'console', sequenceId });\n });\n}\n\nfunction loopSendLogs() {\n setTimeout(() => {\n sendLogs();\n loopSendLogs();\n }, 1000);\n}","type AppMetadata = {\n environmentId: string;\n appAlias: string;\n environmentAlias: string;\n telemetry: {\n isEnabled: boolean;\n serviceName: string;\n };\n};\n\nlet appStarted = false;\nlet metadata: AppMetadata | null = null;\n\nexport function markAppStarted() {\n appStarted = true;\n}\n\nexport function isAppStarted() {\n return appStarted;\n}\n\nexport function setMetadata(_metadata: AppMetadata) {\n metadata = Object.assign({}, metadata, _metadata);\n}\n\nexport function getEnvironmentId() {\n return metadata?.environmentId;\n}\n\nexport function getAppAlias() {\n return metadata?.appAlias;\n}\n\nexport function getEnvironmentAlias() {\n return metadata?.environmentAlias;\n}\n\nexport function getTelemetryServiceName() {\n return metadata?.telemetry?.serviceName;\n}\n\nexport function isTelemetryEnabled() {\n return Boolean(metadata?.telemetry?.isEnabled);\n}\n","import elasticApm from 'elastic-apm-node';\nimport winston from 'winston';\nimport { ElasticsearchTransport } from 'winston-elasticsearch';\n\nimport { getConfig } from '../config/server';\nimport { startLoggerProcess } from './loggerProcess';\nimport { getAppAlias, getEnvironmentAlias, getEnvironmentId, getTelemetryServiceName, isTelemetryEnabled } from './state';\n\nlet isInitialized = false;\nlet apm: typeof elasticApm | null = null;\nlet logger: winston.Logger | null = null;\n\nexport const initMetrics = async () => {\n if (isInitialized) {\n throw new Error('Metrics are already initialized, duplicate \"initMetrics\" call received');\n }\n\n isInitialized = true;\n\n if (isTelemetryEnabled()) {\n await initElasticApm();\n }\n};\n\nasync function initElasticApm() {\n const elasticApmEndpoint = getConfig('_system.elastic.apmEndpoint') as string;\n const elasticCloudId = getConfig('_system.elastic.cloudId') as string;\n const elasticApiKey = getConfig('_system.elastic.apiKey') as string;\n\n const appAlias = getAppAlias() ?? 'unknown';\n const environmentAlias = getEnvironmentAlias() ?? 'unknown';\n const environmentId = getEnvironmentId() ?? 'unknown';\n const serviceName = getTelemetryServiceName();\n\n apm = elasticApm.start({\n serviceName,\n apiKey: elasticApiKey,\n serverUrl: elasticApmEndpoint,\n // environment: 'dev',\n transactionSampleRate: 1.0,\n centralConfig: false,\n globalLabels: {\n modelenceEnv: 'dev',\n appEnv: 'dev',\n environmentId,\n appAlias,\n environmentAlias,\n },\n // logLevel: 'debug'\n });\n\n const esTransport = new ElasticsearchTransport({\n apm,\n level: 'debug',\n clientOpts: {\n cloud: {\n id: elasticCloudId,\n },\n auth: {\n apiKey: elasticApiKey\n },\n requestTimeout: 10000,\n tls: {\n rejectUnauthorized: false\n }\n },\n bufferLimit: 1000,\n silent: false,\n });\n\n esTransport.on('error', (error) => {\n console.error('Elasticsearch Transport Error:', error);\n });\n\n logger = winston.createLogger({\n level: 'debug',\n defaultMeta: {\n serviceName,\n },\n format: winston.format.combine(\n winston.format.json(),\n ),\n transports: [\n // new winston.transports.Console(), // TODO: remove, just for debugging\n esTransport\n ]\n });\n\n startLoggerProcess({\n elasticCloudId,\n elasticApiKey\n });\n}\n\n\n\nexport function getApm() {\n if (!apm) {\n throw new Error('APM is not initialized');\n }\n return apm;\n}\n\nexport function getLogger() {\n if (!logger) {\n throw new Error('Logger is not initialized');\n }\n return logger;\n}\n","import { getLogger, getApm } from '@/app/metrics';\nimport { isTelemetryEnabled } from '@/app/state';\n\nexport function logInfo(message: string, args: object) {\n if (isTelemetryEnabled()) {\n getLogger().info(message, args);\n }\n}\n\nexport function logError(message: string, args: object) {\n if (isTelemetryEnabled()) {\n getLogger().error(message, args);\n }\n}\n\nexport function startTransaction(type: 'method' | 'cron' | 'ai' | 'custom', name: string, context?: Record<string, any>) {\n if (!isTelemetryEnabled()) {\n return {\n end: () => {\n // do nothing\n }\n };\n }\n\n const apm = getApm();\n const transaction = apm.startTransaction(name, type);\n if (context) {\n apm.setCustomContext(context);\n }\n return transaction;\n}\n\nexport function captureError(error: Error) {\n if (!isTelemetryEnabled()) {\n console.error(error);\n return;\n }\n\n getApm().captureError(error);\n}\n"]}
|
package/dist/package-OHMY7GK6.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var s="module",i="modelence",n="0.5.6",o="The Node.js Framework for Real-Time MongoDB Apps",p="dist/index.js",r="dist/global.d.ts",d={".":"./dist/index.js","./client":"./dist/client.js","./server":"./dist/server.js","./telemetry":"./dist/telemetry.js","./mongodb":"./dist/mongo.js"},c=["dist","dist/bin"],l={modelence:"./dist/bin/modelence.js"},m={build:"tsup",dev:"tsup --watch",prepublishOnly:"npm run build",test:'echo "Error: no test specified" && exit 1',postversion:"git push && git push --tags"},a={type:"git",url:"git+https://github.com/modelence/modelence.git"},u="Modelence",y="SEE LICENSE IN LICENSE",g={url:"https://github.com/modelence/modelence/issues"},h="https://modelence.com",b={"@types/archiver":"^6.0.3","@types/bcrypt":"^5.0.2","@types/express":"^5.0.0","@types/fs-extra":"^11.0.4","@types/node":"^22.5.1","@types/react":"^19.0.0","@types/react-dom":"^19.0.1","@typescript-eslint/eslint-plugin":"^8.17.0","@typescript-eslint/parser":"^8.17.0",react:"^19.0.0","react-dom":"^19.0.0",typescript:"^5.7.2"},v={"@modelence/types":"^1.0.2","@octokit/rest":"^20.0.2","@vitejs/plugin-react":"^4.3.4",archiver:"^7.0.1",bcrypt:"^5.1.1",commander:"^12.0.0",dotenv:"^16.4.5","elastic-apm-node":"^4.8.0",express:"^4.21.0","fs-extra":"^11.2.0",jiti:"^2.4.2",mongodb:"^6.8.1",open:"^10.1.0",tsup:"^8.3.6",tsx:"^4.19.3",vite:"^6.0.3","vite-plugin-eslint":"^1.8.1",winston:"^3.15.0","winston-elasticsearch":"^0.19.0",zod:"^3.23.8",zustand:"^5.0.2"},j={react:">=18.0.0","react-dom":">=18.0.0"},x={type:s,name:i,version:n,description:o,main:p,types:r,exports:d,files:c,bin:l,scripts:m,repository:a,author:u,license:y,bugs:g,homepage:h,devDependencies:b,dependencies:v,peerDependencies:j};
|
|
2
|
-
export{u as author,l as bin,g as bugs,x as default,v as dependencies,o as description,b as devDependencies,d as exports,c as files,h as homepage,y as license,p as main,i as name,j as peerDependencies,a as repository,m as scripts,s as type,r as types,n as version};//# sourceMappingURL=package-OHMY7GK6.js.map
|
|
3
|
-
//# sourceMappingURL=package-OHMY7GK6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../package.json"],"names":["type","name","version","description","main","types","exports","files","bin","scripts","repository","author","license","bugs","homepage","devDependencies","dependencies","peerDependencies","package_default"],"mappings":"AACE,IAAAA,EAAQ,QAAA,CACRC,CAAAA,CAAQ,YACRC,CAAAA,CAAW,OAAA,CACXC,EAAe,kDAAA,CACfC,CAAAA,CAAQ,gBACRC,CAAAA,CAAS,kBAAA,CACTC,EAAW,CACT,GAAA,CAAK,kBACL,UAAA,CAAY,kBAAA,CACZ,WAAY,kBAAA,CACZ,aAAA,CAAe,qBAAA,CACf,WAAA,CAAa,iBACf,CAAA,CACAC,CAAAA,CAAS,CACP,MAAA,CACA,UACF,EACAC,CAAAA,CAAO,CACL,UAAa,yBACf,CAAA,CACAC,EAAW,CACT,KAAA,CAAS,OACT,GAAA,CAAO,cAAA,CACP,eAAkB,eAAA,CAClB,IAAA,CAAQ,2CAAA,CACR,WAAA,CAAe,6BACjB,CAAA,CACAC,CAAAA,CAAc,CACZ,IAAA,CAAQ,KAAA,CACR,IAAO,gDACT,CAAA,CACAC,EAAU,WAAA,CACVC,CAAAA,CAAW,yBACXC,CAAAA,CAAQ,CACN,IAAO,+CACT,CAAA,CACAC,EAAY,uBAAA,CACZC,CAAAA,CAAmB,CACjB,iBAAA,CAAmB,QAAA,CACnB,gBAAiB,QAAA,CACjB,gBAAA,CAAkB,SAClB,iBAAA,CAAmB,SAAA,CACnB,cAAe,SAAA,CACf,cAAA,CAAgB,UAChB,kBAAA,CAAoB,SAAA,CACpB,mCAAoC,SAAA,CACpC,2BAAA,CAA6B,UAC7B,KAAA,CAAS,SAAA,CACT,YAAa,SAAA,CACb,UAAA,CAAc,QAChB,CAAA,CACAC,EAAgB,CACd,kBAAA,CAAoB,SACpB,eAAA,CAAiB,SAAA,CACjB,uBAAwB,QAAA,CACxB,QAAA,CAAY,SACZ,MAAA,CAAU,QAAA,CACV,UAAa,SAAA,CACb,MAAA,CAAU,UACV,kBAAA,CAAoB,QAAA,CACpB,QAAW,SAAA,CACX,UAAA,CAAY,SAAA,CACZ,IAAA,CAAQ,SACR,OAAA,CAAW,QAAA,CACX,KAAQ,SAAA,CACR,IAAA,CAAQ,SACR,GAAA,CAAO,SAAA,CACP,KAAQ,QAAA,CACR,oBAAA,CAAsB,SACtB,OAAA,CAAW,SAAA,CACX,wBAAyB,SAAA,CACzB,GAAA,CAAO,UACP,OAAA,CAAW,QACb,CAAA,CACAC,CAAAA,CAAoB,CAClB,KAAA,CAAS,UAAA,CACT,YAAa,UACf,CAAA,CA9EFC,EAAA,CACE,IAAA,CAAAlB,EACA,IAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CACA,WAAA,CAAAC,EACA,IAAA,CAAAC,CAAAA,CACA,MAAAC,CAAAA,CACA,OAAA,CAAAC,EAOA,KAAA,CAAAC,CAAAA,CAIA,IAAAC,CAAAA,CAGA,OAAA,CAAAC,EAOA,UAAA,CAAAC,CAAAA,CAIA,OAAAC,CAAAA,CACA,OAAA,CAAAC,EACA,IAAA,CAAAC,CAAAA,CAGA,SAAAC,CAAAA,CACA,eAAA,CAAAC,EAcA,YAAA,CAAAC,CAAAA,CAuBA,iBAAAC,CAIF","file":"package-OHMY7GK6.js","sourcesContent":["{\n \"type\": \"module\",\n \"name\": \"modelence\",\n \"version\": \"0.5.6\",\n \"description\": \"The Node.js Framework for Real-Time MongoDB Apps\",\n \"main\": \"dist/index.js\",\n \"types\": \"dist/global.d.ts\",\n \"exports\": {\n \".\": \"./dist/index.js\",\n \"./client\": \"./dist/client.js\",\n \"./server\": \"./dist/server.js\",\n \"./telemetry\": \"./dist/telemetry.js\",\n \"./mongodb\": \"./dist/mongo.js\"\n },\n \"files\": [\n \"dist\",\n \"dist/bin\"\n ],\n \"bin\": {\n \"modelence\": \"./dist/bin/modelence.js\"\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"prepublishOnly\": \"npm run build\",\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"postversion\": \"git push && git push --tags\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/modelence/modelence.git\"\n },\n \"author\": \"Modelence\",\n \"license\": \"SEE LICENSE IN LICENSE\",\n \"bugs\": {\n \"url\": \"https://github.com/modelence/modelence/issues\"\n },\n \"homepage\": \"https://modelence.com\",\n \"devDependencies\": {\n \"@types/archiver\": \"^6.0.3\",\n \"@types/bcrypt\": \"^5.0.2\",\n \"@types/express\": \"^5.0.0\",\n \"@types/fs-extra\": \"^11.0.4\",\n \"@types/node\": \"^22.5.1\",\n \"@types/react\": \"^19.0.0\",\n \"@types/react-dom\": \"^19.0.1\",\n \"@typescript-eslint/eslint-plugin\": \"^8.17.0\",\n \"@typescript-eslint/parser\": \"^8.17.0\",\n \"react\": \"^19.0.0\",\n \"react-dom\": \"^19.0.0\",\n \"typescript\": \"^5.7.2\"\n },\n \"dependencies\": {\n \"@modelence/types\": \"^1.0.2\",\n \"@octokit/rest\": \"^20.0.2\",\n \"@vitejs/plugin-react\": \"^4.3.4\",\n \"archiver\": \"^7.0.1\",\n \"bcrypt\": \"^5.1.1\",\n \"commander\": \"^12.0.0\",\n \"dotenv\": \"^16.4.5\",\n \"elastic-apm-node\": \"^4.8.0\",\n \"express\": \"^4.21.0\",\n \"fs-extra\": \"^11.2.0\",\n \"jiti\": \"^2.4.2\",\n \"mongodb\": \"^6.8.1\",\n \"open\": \"^10.1.0\",\n \"tsup\": \"^8.3.6\",\n \"tsx\": \"^4.19.3\",\n \"vite\": \"^6.0.3\",\n \"vite-plugin-eslint\": \"^1.8.1\",\n \"winston\": \"^3.15.0\",\n \"winston-elasticsearch\": \"^0.19.0\",\n \"zod\": \"^3.23.8\",\n \"zustand\": \"^5.0.2\"\n },\n \"peerDependencies\": {\n \"react\": \">=18.0.0\",\n \"react-dom\": \">=18.0.0\"\n }\n}\n"]}
|