@arcote.tech/arc-host 0.4.7 → 0.4.9
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/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/package.json +3 -3
- package/src/create-server.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -4982,7 +4982,7 @@ async function createArcServer(config) {
|
|
|
4982
4982
|
const corsHeaders = {
|
|
4983
4983
|
"Access-Control-Allow-Origin": "*",
|
|
4984
4984
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
|
4985
|
-
"Access-Control-Allow-Headers": "Content-Type, Authorization, X-Arc-Scope"
|
|
4985
|
+
"Access-Control-Allow-Headers": "Content-Type, Authorization, X-Arc-Scope, X-Arc-Tokens"
|
|
4986
4986
|
};
|
|
4987
4987
|
function verifyToken(token) {
|
|
4988
4988
|
try {
|
|
@@ -5132,5 +5132,5 @@ export {
|
|
|
5132
5132
|
ConnectionManager
|
|
5133
5133
|
};
|
|
5134
5134
|
|
|
5135
|
-
//# debugId=
|
|
5135
|
+
//# debugId=172D6E5C0C7BE51464756E2164756E21
|
|
5136
5136
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = once;\n",
|
|
78
78
|
"const timespan = require('./lib/timespan');\nconst PS_SUPPORTED = require('./lib/psSupported');\nconst validateAsymmetricKey = require('./lib/validateAsymmetricKey');\nconst jws = require('jws');\nconst includes = require('lodash.includes');\nconst isBoolean = require('lodash.isboolean');\nconst isInteger = require('lodash.isinteger');\nconst isNumber = require('lodash.isnumber');\nconst isPlainObject = require('lodash.isplainobject');\nconst isString = require('lodash.isstring');\nconst once = require('lodash.once');\nconst { KeyObject, createSecretKey, createPrivateKey } = require('crypto')\n\nconst SUPPORTED_ALGS = ['RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512', 'none'];\nif (PS_SUPPORTED) {\n SUPPORTED_ALGS.splice(3, 0, 'PS256', 'PS384', 'PS512');\n}\n\nconst sign_options_schema = {\n expiresIn: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"expiresIn\" should be a number of seconds or string representing a timespan' },\n notBefore: { isValid: function(value) { return isInteger(value) || (isString(value) && value); }, message: '\"notBefore\" should be a number of seconds or string representing a timespan' },\n audience: { isValid: function(value) { return isString(value) || Array.isArray(value); }, message: '\"audience\" must be a string or array' },\n algorithm: { isValid: includes.bind(null, SUPPORTED_ALGS), message: '\"algorithm\" must be a valid string enum value' },\n header: { isValid: isPlainObject, message: '\"header\" must be an object' },\n encoding: { isValid: isString, message: '\"encoding\" must be a string' },\n issuer: { isValid: isString, message: '\"issuer\" must be a string' },\n subject: { isValid: isString, message: '\"subject\" must be a string' },\n jwtid: { isValid: isString, message: '\"jwtid\" must be a string' },\n noTimestamp: { isValid: isBoolean, message: '\"noTimestamp\" must be a boolean' },\n keyid: { isValid: isString, message: '\"keyid\" must be a string' },\n mutatePayload: { isValid: isBoolean, message: '\"mutatePayload\" must be a boolean' },\n allowInsecureKeySizes: { isValid: isBoolean, message: '\"allowInsecureKeySizes\" must be a boolean'},\n allowInvalidAsymmetricKeyTypes: { isValid: isBoolean, message: '\"allowInvalidAsymmetricKeyTypes\" must be a boolean'}\n};\n\nconst registered_claims_schema = {\n iat: { isValid: isNumber, message: '\"iat\" should be a number of seconds' },\n exp: { isValid: isNumber, message: '\"exp\" should be a number of seconds' },\n nbf: { isValid: isNumber, message: '\"nbf\" should be a number of seconds' }\n};\n\nfunction validate(schema, allowUnknown, object, parameterName) {\n if (!isPlainObject(object)) {\n throw new Error('Expected \"' + parameterName + '\" to be a plain object.');\n }\n Object.keys(object)\n .forEach(function(key) {\n const validator = schema[key];\n if (!validator) {\n if (!allowUnknown) {\n throw new Error('\"' + key + '\" is not allowed in \"' + parameterName + '\"');\n }\n return;\n }\n if (!validator.isValid(object[key])) {\n throw new Error(validator.message);\n }\n });\n}\n\nfunction validateOptions(options) {\n return validate(sign_options_schema, false, options, 'options');\n}\n\nfunction validatePayload(payload) {\n return validate(registered_claims_schema, true, payload, 'payload');\n}\n\nconst options_to_payload = {\n 'audience': 'aud',\n 'issuer': 'iss',\n 'subject': 'sub',\n 'jwtid': 'jti'\n};\n\nconst options_for_objects = [\n 'expiresIn',\n 'notBefore',\n 'noTimestamp',\n 'audience',\n 'issuer',\n 'subject',\n 'jwtid',\n];\n\nmodule.exports = function (payload, secretOrPrivateKey, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n } else {\n options = options || {};\n }\n\n const isObjectPayload = typeof payload === 'object' &&\n !Buffer.isBuffer(payload);\n\n const header = Object.assign({\n alg: options.algorithm || 'HS256',\n typ: isObjectPayload ? 'JWT' : undefined,\n kid: options.keyid\n }, options.header);\n\n function failure(err) {\n if (callback) {\n return callback(err);\n }\n throw err;\n }\n\n if (!secretOrPrivateKey && options.algorithm !== 'none') {\n return failure(new Error('secretOrPrivateKey must have a value'));\n }\n\n if (secretOrPrivateKey != null && !(secretOrPrivateKey instanceof KeyObject)) {\n try {\n secretOrPrivateKey = createPrivateKey(secretOrPrivateKey)\n } catch (_) {\n try {\n secretOrPrivateKey = createSecretKey(typeof secretOrPrivateKey === 'string' ? Buffer.from(secretOrPrivateKey) : secretOrPrivateKey)\n } catch (_) {\n return failure(new Error('secretOrPrivateKey is not valid key material'));\n }\n }\n }\n\n if (header.alg.startsWith('HS') && secretOrPrivateKey.type !== 'secret') {\n return failure(new Error((`secretOrPrivateKey must be a symmetric key when using ${header.alg}`)))\n } else if (/^(?:RS|PS|ES)/.test(header.alg)) {\n if (secretOrPrivateKey.type !== 'private') {\n return failure(new Error((`secretOrPrivateKey must be an asymmetric key when using ${header.alg}`)))\n }\n if (!options.allowInsecureKeySizes &&\n !header.alg.startsWith('ES') &&\n secretOrPrivateKey.asymmetricKeyDetails !== undefined && //KeyObject.asymmetricKeyDetails is supported in Node 15+\n secretOrPrivateKey.asymmetricKeyDetails.modulusLength < 2048) {\n return failure(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`));\n }\n }\n\n if (typeof payload === 'undefined') {\n return failure(new Error('payload is required'));\n } else if (isObjectPayload) {\n try {\n validatePayload(payload);\n }\n catch (error) {\n return failure(error);\n }\n if (!options.mutatePayload) {\n payload = Object.assign({},payload);\n }\n } else {\n const invalid_options = options_for_objects.filter(function (opt) {\n return typeof options[opt] !== 'undefined';\n });\n\n if (invalid_options.length > 0) {\n return failure(new Error('invalid ' + invalid_options.join(',') + ' option for ' + (typeof payload ) + ' payload'));\n }\n }\n\n if (typeof payload.exp !== 'undefined' && typeof options.expiresIn !== 'undefined') {\n return failure(new Error('Bad \"options.expiresIn\" option the payload already has an \"exp\" property.'));\n }\n\n if (typeof payload.nbf !== 'undefined' && typeof options.notBefore !== 'undefined') {\n return failure(new Error('Bad \"options.notBefore\" option the payload already has an \"nbf\" property.'));\n }\n\n try {\n validateOptions(options);\n }\n catch (error) {\n return failure(error);\n }\n\n if (!options.allowInvalidAsymmetricKeyTypes) {\n try {\n validateAsymmetricKey(header.alg, secretOrPrivateKey);\n } catch (error) {\n return failure(error);\n }\n }\n\n const timestamp = payload.iat || Math.floor(Date.now() / 1000);\n\n if (options.noTimestamp) {\n delete payload.iat;\n } else if (isObjectPayload) {\n payload.iat = timestamp;\n }\n\n if (typeof options.notBefore !== 'undefined') {\n try {\n payload.nbf = timespan(options.notBefore, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.nbf === 'undefined') {\n return failure(new Error('\"notBefore\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n if (typeof options.expiresIn !== 'undefined' && typeof payload === 'object') {\n try {\n payload.exp = timespan(options.expiresIn, timestamp);\n }\n catch (err) {\n return failure(err);\n }\n if (typeof payload.exp === 'undefined') {\n return failure(new Error('\"expiresIn\" should be a number of seconds or string representing a timespan eg: \"1d\", \"20h\", 60'));\n }\n }\n\n Object.keys(options_to_payload).forEach(function (key) {\n const claim = options_to_payload[key];\n if (typeof options[key] !== 'undefined') {\n if (typeof payload[claim] !== 'undefined') {\n return failure(new Error('Bad \"options.' + key + '\" option. The payload already has an \"' + claim + '\" property.'));\n }\n payload[claim] = options[key];\n }\n });\n\n const encoding = options.encoding || 'utf8';\n\n if (typeof callback === 'function') {\n callback = callback && once(callback);\n\n jws.createSign({\n header: header,\n privateKey: secretOrPrivateKey,\n payload: payload,\n encoding: encoding\n }).once('error', callback)\n .once('done', function (signature) {\n // TODO: Remove in favor of the modulus length check before signing once node 15+ is the minimum supported version\n if(!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) {\n return callback(new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`))\n }\n callback(null, signature);\n });\n } else {\n let signature = jws.sign({header: header, payload: payload, secret: secretOrPrivateKey, encoding: encoding});\n // TODO: Remove in favor of the modulus length check before signing once node 15+ is the minimum supported version\n if(!options.allowInsecureKeySizes && /^(?:RS|PS)/.test(header.alg) && signature.length < 256) {\n throw new Error(`secretOrPrivateKey has a minimum key size of 2048 bits for ${header.alg}`)\n }\n return signature\n }\n};\n",
|
|
79
79
|
"module.exports = {\n decode: require('./decode'),\n verify: require('./verify'),\n sign: require('./sign'),\n JsonWebTokenError: require('./lib/JsonWebTokenError'),\n NotBeforeError: require('./lib/NotBeforeError'),\n TokenExpiredError: require('./lib/TokenExpiredError'),\n};\n",
|
|
80
|
-
"import type { ArcContextAny, DatabaseAdapter } from \"@arcote.tech/arc\";\nimport type { Server } from \"bun\";\nimport jwt from \"jsonwebtoken\";\nimport { ConnectionManager } from \"./connection-manager\";\nimport { ContextHandler } from \"./context-handler\";\nimport { CronScheduler } from \"./cron-scheduler\";\nimport {\n arcHttpHandlers,\n arcWsHandlers,\n cleanupClientSubs,\n cleanupStreams,\n} from \"./middleware\";\nimport type {\n ArcHttpHandler,\n ArcRequestContext,\n ArcWsContext,\n ArcWsHandler,\n} from \"./middleware/types\";\nimport type { TokenPayload } from \"./types\";\n\ntype WebSocketData = { clientId: string };\n\nexport interface ArcServerConfig {\n context: ArcContextAny;\n dbAdapterFactory: (ctx: any) => Promise<DatabaseAdapter>;\n httpHandlers?: ArcHttpHandler[];\n wsHandlers?: ArcWsHandler[];\n port?: number;\n jwtSecret?: string;\n /** Extra callback when a WS client disconnects (e.g. to clean up platform state) */\n onWsClose?: (clientId: string) => void;\n}\n\nexport interface ArcServer {\n server: Server<WebSocketData>;\n contextHandler: ContextHandler;\n connectionManager: ConnectionManager;\n cronScheduler: CronScheduler;\n stop: () => void;\n}\n\n/**\n * Create an Arc server with composable HTTP + WS middleware.\n *\n * By default includes all Arc handlers (command, query, stream, route, eventSync, health,\n * scope:auth, sync-events, request-sync, execute-command, view subscriptions).\n * Platform servers add their own handlers on top.\n */\nexport async function createArcServer(\n config: ArcServerConfig,\n): Promise<ArcServer> {\n const jwtSecret =\n config.jwtSecret ||\n process.env.JWT_SECRET ||\n \"arc-host-secret-change-in-production\";\n const port = config.port || 5005;\n\n // Init context handler\n const dbAdapter = config.dbAdapterFactory(config.context);\n const contextHandler = new ContextHandler(config.context, dbAdapter);\n await contextHandler.init();\n\n // Start cron scheduler\n const cronScheduler = new CronScheduler(contextHandler);\n cronScheduler.start();\n\n const connectionManager = new ConnectionManager();\n\n const corsHeaders = {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET, POST, PUT, DELETE, PATCH, OPTIONS\",\n \"Access-Control-Allow-Headers\":\n \"Content-Type, Authorization, X-Arc-Scope\",\n };\n\n function verifyToken(token: string): TokenPayload | null {\n try {\n const decoded = jwt.verify(token, jwtSecret) as any;\n if (decoded.tokenName && !decoded.tokenType) {\n return {\n tokenType: decoded.tokenName,\n params: decoded.params || {},\n iat: decoded.iat,\n exp: decoded.exp,\n };\n }\n return decoded as TokenPayload;\n } catch {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3) return null;\n const payload = JSON.parse(atob(parts[1]));\n return {\n tokenType: payload.tokenName,\n params: payload.params || {},\n iat: payload.iat,\n exp: payload.exp,\n };\n } catch {\n return null;\n }\n }\n }\n\n // Build handler chains — Arc defaults + user-provided extras\n const defaultHttp = arcHttpHandlers(contextHandler, connectionManager);\n const defaultWs = arcWsHandlers();\n\n const httpHandlers = config.httpHandlers\n ? [...defaultHttp, ...config.httpHandlers]\n : defaultHttp;\n\n const wsHandlers = config.wsHandlers\n ? [...defaultWs, ...config.wsHandlers]\n : defaultWs;\n\n const wsCtx: ArcWsContext = {\n contextHandler,\n connectionManager,\n verifyToken,\n };\n\n const server = Bun.serve<WebSocketData>({\n port,\n idleTimeout: 255,\n\n async fetch(req, server) {\n const url = new URL(req.url);\n\n // CORS preflight\n if (req.method === \"OPTIONS\") {\n return new Response(null, { headers: corsHeaders });\n }\n\n // Token extraction\n const authHeader = req.headers.get(\"Authorization\");\n const rawToken =\n authHeader?.replace(\"Bearer \", \"\") ||\n url.searchParams.get(\"token\");\n const tokenPayload = rawToken ? verifyToken(rawToken) : null;\n\n // WebSocket upgrade\n if (\n url.pathname === \"/ws\" &&\n req.headers.get(\"Upgrade\") === \"websocket\"\n ) {\n if (server.upgrade(req, { data: { clientId: \"\" } })) return undefined;\n return new Response(\"WebSocket upgrade failed\", {\n status: 500,\n headers: corsHeaders,\n });\n }\n\n // Run HTTP handler chain\n const reqCtx: ArcRequestContext = {\n rawToken,\n tokenPayload,\n corsHeaders,\n };\n for (const handler of httpHandlers) {\n const response = await handler(req, url, reqCtx);\n if (response) return response;\n }\n\n return new Response(\"Not Found\", {\n status: 404,\n headers: corsHeaders,\n });\n },\n\n websocket: {\n open(ws) {\n connectionManager.addClient(ws as any);\n },\n async message(ws, messageStr) {\n const client = connectionManager.getClientByWs(ws as any);\n if (!client) return;\n\n try {\n const message = JSON.parse(messageStr as string);\n for (const handler of wsHandlers) {\n const handled = await handler(client, message, wsCtx);\n if (handled) break;\n }\n } catch (error) {\n console.error(\"Failed to parse WS message:\", error);\n }\n },\n close(ws) {\n const client = connectionManager.getClientByWs(ws as any);\n if (client) {\n cleanupClientSubs(client.id);\n config.onWsClose?.(client.id);\n connectionManager.removeClient(client.id);\n }\n },\n },\n });\n\n console.log(`Arc Server running on http://localhost:${port}`);\n\n return {\n server,\n contextHandler,\n connectionManager,\n cronScheduler,\n stop: () => {\n cronScheduler.stop();\n cleanupStreams();\n server.stop();\n },\n };\n}\n",
|
|
80
|
+
"import type { ArcContextAny, DatabaseAdapter } from \"@arcote.tech/arc\";\nimport type { Server } from \"bun\";\nimport jwt from \"jsonwebtoken\";\nimport { ConnectionManager } from \"./connection-manager\";\nimport { ContextHandler } from \"./context-handler\";\nimport { CronScheduler } from \"./cron-scheduler\";\nimport {\n arcHttpHandlers,\n arcWsHandlers,\n cleanupClientSubs,\n cleanupStreams,\n} from \"./middleware\";\nimport type {\n ArcHttpHandler,\n ArcRequestContext,\n ArcWsContext,\n ArcWsHandler,\n} from \"./middleware/types\";\nimport type { TokenPayload } from \"./types\";\n\ntype WebSocketData = { clientId: string };\n\nexport interface ArcServerConfig {\n context: ArcContextAny;\n dbAdapterFactory: (ctx: any) => Promise<DatabaseAdapter>;\n httpHandlers?: ArcHttpHandler[];\n wsHandlers?: ArcWsHandler[];\n port?: number;\n jwtSecret?: string;\n /** Extra callback when a WS client disconnects (e.g. to clean up platform state) */\n onWsClose?: (clientId: string) => void;\n}\n\nexport interface ArcServer {\n server: Server<WebSocketData>;\n contextHandler: ContextHandler;\n connectionManager: ConnectionManager;\n cronScheduler: CronScheduler;\n stop: () => void;\n}\n\n/**\n * Create an Arc server with composable HTTP + WS middleware.\n *\n * By default includes all Arc handlers (command, query, stream, route, eventSync, health,\n * scope:auth, sync-events, request-sync, execute-command, view subscriptions).\n * Platform servers add their own handlers on top.\n */\nexport async function createArcServer(\n config: ArcServerConfig,\n): Promise<ArcServer> {\n const jwtSecret =\n config.jwtSecret ||\n process.env.JWT_SECRET ||\n \"arc-host-secret-change-in-production\";\n const port = config.port || 5005;\n\n // Init context handler\n const dbAdapter = config.dbAdapterFactory(config.context);\n const contextHandler = new ContextHandler(config.context, dbAdapter);\n await contextHandler.init();\n\n // Start cron scheduler\n const cronScheduler = new CronScheduler(contextHandler);\n cronScheduler.start();\n\n const connectionManager = new ConnectionManager();\n\n const corsHeaders = {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET, POST, PUT, DELETE, PATCH, OPTIONS\",\n \"Access-Control-Allow-Headers\":\n \"Content-Type, Authorization, X-Arc-Scope, X-Arc-Tokens\",\n };\n\n function verifyToken(token: string): TokenPayload | null {\n try {\n const decoded = jwt.verify(token, jwtSecret) as any;\n if (decoded.tokenName && !decoded.tokenType) {\n return {\n tokenType: decoded.tokenName,\n params: decoded.params || {},\n iat: decoded.iat,\n exp: decoded.exp,\n };\n }\n return decoded as TokenPayload;\n } catch {\n try {\n const parts = token.split(\".\");\n if (parts.length !== 3) return null;\n const payload = JSON.parse(atob(parts[1]));\n return {\n tokenType: payload.tokenName,\n params: payload.params || {},\n iat: payload.iat,\n exp: payload.exp,\n };\n } catch {\n return null;\n }\n }\n }\n\n // Build handler chains — Arc defaults + user-provided extras\n const defaultHttp = arcHttpHandlers(contextHandler, connectionManager);\n const defaultWs = arcWsHandlers();\n\n const httpHandlers = config.httpHandlers\n ? [...defaultHttp, ...config.httpHandlers]\n : defaultHttp;\n\n const wsHandlers = config.wsHandlers\n ? [...defaultWs, ...config.wsHandlers]\n : defaultWs;\n\n const wsCtx: ArcWsContext = {\n contextHandler,\n connectionManager,\n verifyToken,\n };\n\n const server = Bun.serve<WebSocketData>({\n port,\n idleTimeout: 255,\n\n async fetch(req, server) {\n const url = new URL(req.url);\n\n // CORS preflight\n if (req.method === \"OPTIONS\") {\n return new Response(null, { headers: corsHeaders });\n }\n\n // Token extraction\n const authHeader = req.headers.get(\"Authorization\");\n const rawToken =\n authHeader?.replace(\"Bearer \", \"\") ||\n url.searchParams.get(\"token\");\n const tokenPayload = rawToken ? verifyToken(rawToken) : null;\n\n // WebSocket upgrade\n if (\n url.pathname === \"/ws\" &&\n req.headers.get(\"Upgrade\") === \"websocket\"\n ) {\n if (server.upgrade(req, { data: { clientId: \"\" } })) return undefined;\n return new Response(\"WebSocket upgrade failed\", {\n status: 500,\n headers: corsHeaders,\n });\n }\n\n // Run HTTP handler chain\n const reqCtx: ArcRequestContext = {\n rawToken,\n tokenPayload,\n corsHeaders,\n };\n for (const handler of httpHandlers) {\n const response = await handler(req, url, reqCtx);\n if (response) return response;\n }\n\n return new Response(\"Not Found\", {\n status: 404,\n headers: corsHeaders,\n });\n },\n\n websocket: {\n open(ws) {\n connectionManager.addClient(ws as any);\n },\n async message(ws, messageStr) {\n const client = connectionManager.getClientByWs(ws as any);\n if (!client) return;\n\n try {\n const message = JSON.parse(messageStr as string);\n for (const handler of wsHandlers) {\n const handled = await handler(client, message, wsCtx);\n if (handled) break;\n }\n } catch (error) {\n console.error(\"Failed to parse WS message:\", error);\n }\n },\n close(ws) {\n const client = connectionManager.getClientByWs(ws as any);\n if (client) {\n cleanupClientSubs(client.id);\n config.onWsClose?.(client.id);\n connectionManager.removeClient(client.id);\n }\n },\n },\n });\n\n console.log(`Arc Server running on http://localhost:${port}`);\n\n return {\n server,\n contextHandler,\n connectionManager,\n cronScheduler,\n stop: () => {\n cronScheduler.stop();\n cleanupStreams();\n server.stop();\n },\n };\n}\n",
|
|
81
81
|
"import type { ServerWebSocket } from \"bun\";\nimport type {\n ConnectedClient,\n HostToClientMessage,\n TokenPayload,\n} from \"./types\";\n\n/**\n * Manages WebSocket connections for a host\n */\nexport class ConnectionManager {\n private clients = new Map<string, ConnectedClient>();\n private clientIdCounter = 0;\n\n /**\n * Add a new client connection\n */\n addClient(ws: ServerWebSocket<{ clientId: string }>): ConnectedClient {\n const clientId = `client_${++this.clientIdCounter}_${Date.now()}`;\n\n const client: ConnectedClient = {\n id: clientId,\n scopeTokens: new Map(),\n lastHostEventId: null,\n ws,\n };\n\n this.clients.set(clientId, client);\n\n // Store clientId in WebSocket data for later lookup\n ws.data = { clientId };\n\n return client;\n }\n\n /**\n * Remove a client connection\n */\n removeClient(clientId: string): void {\n this.clients.delete(clientId);\n }\n\n /**\n * Get client by ID\n */\n getClient(clientId: string): ConnectedClient | undefined {\n return this.clients.get(clientId);\n }\n\n /**\n * Get client by WebSocket\n */\n getClientByWs(\n ws: ServerWebSocket<{ clientId: string }>,\n ): ConnectedClient | undefined {\n const clientId = ws.data?.clientId;\n if (!clientId) return undefined;\n return this.clients.get(clientId);\n }\n\n /**\n * Set a scope token for a client\n */\n setScopeToken(\n clientId: string,\n scope: string,\n decoded: TokenPayload,\n raw: string,\n ): void {\n const client = this.clients.get(clientId);\n if (client) {\n client.scopeTokens.set(scope, { decoded, raw });\n }\n }\n\n /**\n * Get a specific scope token for a client\n */\n getScopeToken(\n clientId: string,\n scope: string,\n ): { decoded: TokenPayload; raw: string } | undefined {\n const client = this.clients.get(clientId);\n return client?.scopeTokens.get(scope);\n }\n\n /**\n * Get all scope tokens for a client as an array of TokenPayload\n */\n getAllScopeTokens(clientId: string): TokenPayload[] {\n const client = this.clients.get(clientId);\n if (!client) return [];\n return Array.from(client.scopeTokens.values()).map((v) => v.decoded);\n }\n\n /**\n * Update client's last synced event ID\n */\n updateLastSyncedEventId(clientId: string, hostEventId: string): void {\n const client = this.clients.get(clientId);\n if (client) {\n client.lastHostEventId = hostEventId;\n }\n }\n\n /**\n * Get all connected clients\n */\n getAllClients(): ConnectedClient[] {\n return Array.from(this.clients.values());\n }\n\n /**\n * Send message to a specific client\n */\n sendToClient(clientId: string, message: HostToClientMessage): boolean {\n const client = this.clients.get(clientId);\n if (!client) return false;\n\n try {\n client.ws.send(JSON.stringify(message));\n return true;\n } catch (error) {\n console.error(`Failed to send message to client ${clientId}:`, error);\n return false;\n }\n }\n\n /**\n * Broadcast message to all clients\n */\n broadcast(message: HostToClientMessage, excludeClientId?: string): void {\n for (const client of this.clients.values()) {\n if (client.id === excludeClientId) continue;\n this.sendToClient(client.id, message);\n }\n }\n\n /**\n * Get total number of connected clients\n */\n get clientCount(): number {\n return this.clients.size;\n }\n}\n",
|
|
82
82
|
"import {\n type ArcContextAny,\n type ArcEventAny,\n type DatabaseAdapter,\n LocalEventPublisher,\n MasterDataStorage,\n Model,\n ScopedModel,\n mutationExecutor,\n} from \"@arcote.tech/arc\";\nimport { canTokenEmitEvent, filterEventsForToken } from \"./event-auth\";\nimport type { SyncableEvent, TokenPayload } from \"./types\";\n\n/**\n * Handles a single context on the host\n */\nexport class ContextHandler {\n private model: Model<ArcContextAny>;\n private dataStorage: MasterDataStorage;\n private eventPublisher: LocalEventPublisher;\n private eventDefinitions = new Map<string, ArcEventAny>();\n private hostEventIdCounter = 0;\n private initialized = false;\n\n constructor(\n public readonly context: ArcContextAny,\n dbAdapter: Promise<DatabaseAdapter>,\n ) {\n this.dataStorage = new MasterDataStorage(dbAdapter);\n this.eventPublisher = new LocalEventPublisher(this.dataStorage);\n\n this.model = new Model(context, {\n adapters: {\n dataStorage: this.dataStorage,\n eventPublisher: this.eventPublisher,\n },\n environment: \"server\",\n });\n\n // Build event definitions map\n for (const element of context.elements) {\n if (\"tagFields\" in element && \"payload\" in element) {\n this.eventDefinitions.set(element.name, element as ArcEventAny);\n }\n }\n }\n\n /**\n * Initialize the context handler and run seed data if needed.\n */\n async init(): Promise<void> {\n if (this.initialized) return;\n await this.model.init();\n await this.runSeeds();\n this.initialized = true;\n }\n\n /**\n * Run seed data for aggregates that declare seedWith().\n * Seeds only when the table is empty — idempotent on restart.\n */\n private async runSeeds(): Promise<void> {\n for (const element of this.context.elements) {\n if (!(\"getSeeds\" in element)) continue;\n const seedInfo = (element as any).getSeeds();\n if (!seedInfo) continue;\n\n const { data, idFactory } = seedInfo;\n const tableName = element.name;\n const store = this.dataStorage.getStore<any>(tableName);\n\n // Only seed into empty tables\n const existing = await store.find({});\n if (existing.length > 0) continue;\n\n // Insert seed rows — use provided _id or auto-generate\n const changes = data.map((row: any) => ({\n type: \"set\" as const,\n data: {\n ...row,\n _id: row._id ?? idFactory.generate(),\n },\n }));\n await store.applyChanges(changes);\n\n console.log(`[ARC:Seed] Seeded ${data.length} row(s) into ${tableName}`);\n }\n }\n\n /**\n * Execute a command\n */\n async executeCommand(\n commandName: string,\n params: any,\n rawToken: string | null,\n ): Promise<any> {\n // Create per-request scoped model with its own auth\n const scoped = new ScopedModel(this.model, \"request\");\n if (rawToken) scoped.setToken(rawToken);\n\n const mutations = mutationExecutor(scoped);\n\n // Support dotted names: \"accounts.signIn\" → mutations.accounts.signIn\n let command: any;\n if (commandName.includes(\".\")) {\n const [elementName, methodName] = commandName.split(\".\");\n const element = (mutations as any)[elementName];\n command = element?.[methodName];\n } else {\n command = (mutations as any)[commandName];\n }\n\n if (!command) {\n throw new Error(`Command '${commandName}' not found`);\n }\n\n try {\n const result = await command(params);\n return result;\n } catch (error) {\n console.error(`[ARC] Command '${commandName}' failed:`, error);\n throw error;\n }\n }\n\n /**\n * Persist events from a client and return with host IDs\n */\n async persistEvents(\n events: Array<{\n localId: string;\n type: string;\n payload: any;\n createdAt: string;\n }>,\n clientId: string,\n token: TokenPayload | null,\n ): Promise<SyncableEvent[]> {\n const persistedEvents: SyncableEvent[] = [];\n\n for (const event of events) {\n // Get event definition\n const eventDef = this.eventDefinitions.get(event.type);\n if (!eventDef) {\n console.warn(`Unknown event type: ${event.type}`);\n continue;\n }\n\n // Check if token can emit this event\n if (!canTokenEmitEvent(token, eventDef, event.payload)) {\n console.warn(`Token not authorized to emit event: ${event.type}`);\n continue;\n }\n\n // Generate host ID\n const hostId = `host_${++this.hostEventIdCounter}_${Date.now()}`;\n\n const syncableEvent: SyncableEvent = {\n localId: event.localId,\n hostId,\n type: event.type,\n payload: event.payload,\n createdAt: event.createdAt,\n clientId,\n };\n\n // Persist to database via event publisher\n await this.eventPublisher.publish({\n id: hostId,\n type: event.type,\n payload: event.payload,\n createdAt: new Date(event.createdAt),\n });\n\n persistedEvents.push(syncableEvent);\n }\n\n return persistedEvents;\n }\n\n /**\n * Get events after a specific host ID, filtered by token\n */\n async getEventsSince(\n lastHostEventId: string | null,\n token: TokenPayload | null,\n ): Promise<SyncableEvent[]> {\n // Query events from database\n const eventsStore = this.dataStorage.getStore<any>(\"events\");\n const allEvents: any[] = await eventsStore.find({});\n\n let filteredEvents: any[];\n if (lastHostEventId) {\n // Extract timestamp from lastHostEventId (format: host_{counter}_{timestamp})\n const parts = lastHostEventId.split(\"_\");\n const lastTimestamp = parts.length >= 3 ? parseInt(parts[2], 10) : 0;\n\n // Filter events with timestamp > lastTimestamp\n filteredEvents = allEvents.filter((e) => {\n if (!e._id.startsWith(\"host_\")) return false;\n const eventParts = e._id.split(\"_\");\n const eventTimestamp =\n eventParts.length >= 3 ? parseInt(eventParts[2], 10) : 0;\n return eventTimestamp > lastTimestamp;\n });\n } else {\n // Return all host events\n filteredEvents = allEvents.filter((e) => e._id.startsWith(\"host_\"));\n }\n\n // Sort by timestamp to ensure correct order\n filteredEvents.sort((a, b) => {\n const aTimestamp = parseInt(a._id.split(\"_\")[2] || \"0\", 10);\n const bTimestamp = parseInt(b._id.split(\"_\")[2] || \"0\", 10);\n return aTimestamp - bTimestamp;\n });\n\n // Convert to SyncableEvent format\n const syncableEvents: SyncableEvent[] = filteredEvents.map((e) => ({\n localId: e._id,\n hostId: e._id,\n type: e.type,\n payload:\n typeof e.payload === \"string\" ? JSON.parse(e.payload) : e.payload,\n createdAt: e.createdAt,\n clientId: \"host\",\n }));\n\n // Filter by token authorization\n return filterEventsForToken(token, syncableEvents, this.eventDefinitions);\n }\n\n /**\n * Get the model for advanced operations\n */\n getModel(): Model<ArcContextAny> {\n return this.model;\n }\n\n /**\n * Get data storage for queries\n */\n getDataStorage(): MasterDataStorage {\n return this.dataStorage;\n }\n\n /**\n * Get event definitions map\n */\n getEventDefinitions(): Map<string, ArcEventAny> {\n return this.eventDefinitions;\n }\n\n /**\n * Get event publisher for subscribing to data changes\n */\n getEventPublisher(): LocalEventPublisher {\n return this.eventPublisher;\n }\n}\n",
|
|
83
83
|
"import type { ArcEventAny } from \"@arcote.tech/arc\";\nimport type { SyncableEvent, TokenPayload } from \"./types\";\n\n/**\n * Check if a token can receive an event based on explicit protectBy rules\n *\n * Security model:\n * - Events WITHOUT protections: public, anyone can receive\n * - Events WITH protections: MUST have matching read rule for token\n */\nexport function canTokenReceiveEvent(\n token: TokenPayload | null,\n event: ArcEventAny,\n eventInstance: SyncableEvent,\n): boolean {\n // If event has no protections, it's public - allow everyone\n if (!event.hasProtections) {\n return true;\n }\n\n // Event has protections - require valid token\n if (!token) {\n return false;\n }\n\n // Check event protections for matching read rule\n for (const protection of event.protections) {\n // Check if this protection applies to the token type\n if (protection.token.name !== token.tokenType) {\n continue;\n }\n\n // Get protection rules for this token's params\n const rules = protection.protectionFn(token.params);\n\n // If read is explicitly false, deny access\n if (rules.read === false) {\n continue;\n }\n\n // Check read conditions against event payload\n if (rules.read) {\n const matches = checkConditionsMatch(rules.read, eventInstance.payload);\n if (matches) {\n return true;\n }\n }\n }\n\n // No matching protection rule found - deny access\n return false;\n}\n\n/**\n * Check if a token can emit an event\n */\nexport function canTokenEmitEvent(\n token: TokenPayload | null,\n event: ArcEventAny,\n payload: any,\n): boolean {\n // If no token, only allow unprotected events\n if (!token) {\n return !event.hasProtections;\n }\n\n // If event has no protections, allow all authenticated users\n if (!event.hasProtections) {\n return true;\n }\n\n // Check event protections\n for (const protection of event.protections) {\n // Check if this protection applies to the token type\n if (protection.token.name !== token.tokenType) {\n continue;\n }\n\n // Get protection rules for this token's params\n const rules = protection.protectionFn(token.params);\n\n // Check write rules against payload\n if (rules.write) {\n const matches = checkConditionsMatch(rules.write, payload);\n if (matches) {\n return true;\n }\n }\n }\n\n return false;\n}\n\n/**\n * Check if conditions match against data\n */\nfunction checkConditionsMatch(\n conditions: Record<string, any>,\n data: Record<string, any>,\n): boolean {\n for (const [key, expectedValue] of Object.entries(conditions)) {\n const actualValue = data[key];\n\n if (actualValue !== expectedValue) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Filter events that a single token can receive\n */\nexport function filterEventsForToken(\n token: TokenPayload | null,\n events: SyncableEvent[],\n eventDefinitions: Map<string, ArcEventAny>,\n): SyncableEvent[] {\n return events.filter((eventInstance) => {\n const eventDef = eventDefinitions.get(eventInstance.type);\n if (!eventDef) {\n // Unknown event type, don't send\n return false;\n }\n return canTokenReceiveEvent(token, eventDef, eventInstance);\n });\n}\n\n/**\n * Filter events visible to ANY of the provided tokens.\n * Used for multi-scope clients where an event visible to any scope should be sent.\n */\nexport function filterEventsForTokens(\n tokens: TokenPayload[],\n events: SyncableEvent[],\n eventDefinitions: Map<string, ArcEventAny>,\n): SyncableEvent[] {\n if (tokens.length === 0) {\n // No tokens — only public events\n return filterEventsForToken(null, events, eventDefinitions);\n }\n\n return events.filter((eventInstance) => {\n const eventDef = eventDefinitions.get(eventInstance.type);\n if (!eventDef) return false;\n\n // Event is visible if ANY token can receive it\n return tokens.some((token) =>\n canTokenReceiveEvent(token, eventDef, eventInstance),\n );\n });\n}\n",
|
|
@@ -88,6 +88,6 @@
|
|
|
88
88
|
"// Re-export everything from src\nexport * from \"./src\";\n\n// Helper function to start host\nimport type { ArcContextAny, DBAdapterFactory } from \"@arcote.tech/arc\";\nimport { createArcServer } from \"./src/create-server\";\n\n/**\n * Start a host server for a context\n */\nexport function hostLiveModel<C extends ArcContextAny>(\n context: C,\n dbAdapterFactory: DBAdapterFactory,\n) {\n return createArcServer({\n context,\n dbAdapterFactory,\n });\n}\n"
|
|
89
89
|
],
|
|
90
90
|
"mappings": "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",
|
|
91
|
-
"debugId": "
|
|
91
|
+
"debugId": "172D6E5C0C7BE51464756E2164756E21",
|
|
92
92
|
"names": []
|
|
93
93
|
}
|
package/package.json
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.4.
|
|
7
|
+
"version": "0.4.9",
|
|
8
8
|
"private": false,
|
|
9
9
|
"author": "Przemysław Krasiński [arcote.tech]",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@arcote.tech/arc-adapter-db-sqlite": "^0.4.
|
|
11
|
+
"@arcote.tech/arc-adapter-db-sqlite": "^0.4.9",
|
|
12
12
|
"croner": "^9.0.0",
|
|
13
13
|
"jsonwebtoken": "^9.0.2"
|
|
14
14
|
},
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"@types/bun": "^1.2.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"@arcote.tech/arc": "^0.4.
|
|
27
|
+
"@arcote.tech/arc": "^0.4.9"
|
|
28
28
|
}
|
|
29
29
|
}
|
package/src/create-server.ts
CHANGED
|
@@ -70,7 +70,7 @@ export async function createArcServer(
|
|
|
70
70
|
"Access-Control-Allow-Origin": "*",
|
|
71
71
|
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
|
72
72
|
"Access-Control-Allow-Headers":
|
|
73
|
-
"Content-Type, Authorization, X-Arc-Scope",
|
|
73
|
+
"Content-Type, Authorization, X-Arc-Scope, X-Arc-Tokens",
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
function verifyToken(token: string): TokenPayload | null {
|