authup 1.0.1-beta.10 → 1.0.2-beta.14
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.cjs +1 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -9
package/dist/index.cjs
CHANGED
|
@@ -9,7 +9,6 @@ var kit = require('@authup/kit');
|
|
|
9
9
|
var path = require('node:path');
|
|
10
10
|
var node_child_process = require('node:child_process');
|
|
11
11
|
var process = require('node:process');
|
|
12
|
-
var smob = require('smob');
|
|
13
12
|
var findUpPackagePath = require('resolve-package-path');
|
|
14
13
|
var serverCore = require('@authup/server-core');
|
|
15
14
|
var readline = require('node:readline');
|
|
@@ -86,7 +85,7 @@ function parseProcessOutputData(input) {
|
|
|
86
85
|
}
|
|
87
86
|
try {
|
|
88
87
|
const parsed = JSON.parse(line);
|
|
89
|
-
if (
|
|
88
|
+
if (kit.isObject(parsed) && kit.hasOwnProperty(parsed, 'message') && typeof parsed.message === 'string') {
|
|
90
89
|
items.push(parsed.message);
|
|
91
90
|
continue;
|
|
92
91
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/services/check.ts","../src/services/client-web/config.ts","../src/services/constants.ts","../src/utils/line-breaks.ts","../src/utils/process-output.ts","../src/utils/stringify-object-args.ts","../src/utils/shell.ts","../src/constants.ts","../src/utils/modules-path.ts","../src/services/client-web/execute.ts","../src/services/server-core/config.ts","../src/services/server-core/execute.ts","../src/commands/info.ts","../src/services/execute.ts","../src/commands/cleanup.ts","../src/commands/start.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Key } from '@authup/config';\nimport { deserializeKey } from '@authup/config';\n\nexport function isServiceValid(input: Key | string) : boolean {\n let key : Key;\n if (typeof input === 'string') {\n key = deserializeKey(input);\n } else {\n key = input;\n }\n\n if (key.group !== 'client' && key.group !== 'server') {\n return false;\n }\n\n if (key.group === 'client') {\n return key.name === 'web';\n }\n\n return key.name === 'core';\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/client-web-config';\nimport { buildConfig } from '@authup/client-web-config';\nimport { makeURLPublicAccessible } from '@authup/kit';\n\nexport async function buildClientWebConfig(container: Container): Promise<Config> {\n const client = container.getData('client/web');\n const server = container.getData('server/core');\n\n if (server) {\n if (\n !client.apiUrl &&\n typeof server.publicUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.publicUrl);\n }\n\n if (\n !client.publicUrl &&\n typeof server.authorizeRedirectUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.authorizeRedirectUrl);\n }\n }\n\n return buildConfig({\n data: client,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServicePackageName {\n CLIENT_WEB = '@authup/client-web',\n SERVER_CORE = '@authup/server-core',\n}\n\nexport enum ServiceCommand {\n START = 'start',\n CLEANUP = 'cleanup',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function removeLineBreaks(input: string) {\n return input.replace(/(\\r\\n|\\n|\\r)/gm, '');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hasOwnProperty, isObject } from 'smob';\nimport { removeLineBreaks } from './line-breaks';\n\nexport function parseProcessOutputData(input: unknown) : string[] {\n if (typeof input !== 'string') {\n return [];\n }\n\n const lines = input\n .split(/\\r?\\n/)\n .filter((element) => element);\n\n const items : string[] = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = removeLineBreaks(lines[i]).trim();\n if (line.length === 0) {\n continue;\n }\n\n try {\n const parsed = JSON.parse(line);\n\n if (\n isObject(parsed) &&\n hasOwnProperty(parsed, 'message') &&\n typeof parsed.message === 'string'\n ) {\n items.push(parsed.message);\n continue;\n }\n } catch (e) {\n // no json :/\n }\n\n items.push(line);\n }\n\n return items;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function stringifyObjectArgs(ob: Record<string, any>) {\n const parts : string[] = [];\n\n const keys = Object.keys(ob);\n for (let i = 0; i < keys.length; i++) {\n parts.push(`--${keys[i]} ${ob[keys[i]]}`);\n }\n\n return parts.join(' ');\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ChildProcess } from 'node:child_process';\nimport { exec } from 'node:child_process';\nimport process from 'node:process';\nimport { parseProcessOutputData } from './process-output';\nimport { stringifyObjectArgs } from './stringify-object-args';\n\nexport type ShellCommandExecContext = {\n command: string,\n env?: Record<string, string | undefined>,\n envFromProcess?: boolean,\n args?: Record<string, any>,\n logErrorStream?: (content: string) => void,\n logDataStream?: (content: string) => void\n};\n\nexport async function execShellCommand(\n ctx: ShellCommandExecContext,\n) {\n ctx.env = ctx.env || {};\n ctx.args = ctx.args || {};\n\n return new Promise<ChildProcess>((resolve, reject) => {\n const childProcess = exec(`${ctx.command} ${stringifyObjectArgs(ctx.args)}`, {\n env: {\n PATH: process.env.PATH,\n ...(ctx.envFromProcess ? process.env : {}),\n ...ctx.env,\n },\n });\n\n childProcess.on('error', (data) => {\n reject(data);\n });\n\n childProcess.on('spawn', () => {\n resolve(childProcess);\n });\n\n childProcess.stderr.setEncoding('utf-8');\n childProcess.stderr.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (ctx.logErrorStream) {\n ctx.logErrorStream(data);\n }\n });\n\n childProcess.stdout.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (!ctx.logDataStream) {\n return;\n }\n\n const lines = parseProcessOutputData(data);\n for (let i = 0; i < lines.length; i++) {\n ctx.logDataStream(lines[i]);\n }\n });\n });\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\n\nexport const PACKAGE_DIRECTORY = path.join(__dirname, '..');\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport process from 'node:process';\nimport findUpPackagePath from 'resolve-package-path';\nimport { PACKAGE_DIRECTORY } from '../constants';\n\nexport function findModulePath(module: string) : string | undefined {\n let modulePath = findUpPackagePath(module, PACKAGE_DIRECTORY);\n if (PACKAGE_DIRECTORY !== process.cwd()) {\n modulePath = findUpPackagePath(module, process.cwd());\n }\n\n if (!modulePath) {\n return undefined;\n }\n\n return modulePath;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildConfig } from '@authup/client-web-config';\nimport type { Container } from '@authup/config';\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nfunction extendEnv(input: Record<string, string | undefined>) {\n const env : Record<string, any> = {};\n\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n env[keys[i]] = input[keys[i]];\n\n if (!keys[i].match(/^(?:NUXT|NITRO)_.*$/)) {\n env[`NUXT_PUBLIC_${keys[i]}`] = input[keys[i]];\n }\n }\n\n return env;\n}\n\ntype WebAppExecutionContext = ShellCommandExecContext & {\n container: Container\n};\n\nexport function buildWebAppExecutionContext(\n ctx: WebAppExecutionContext,\n) : ShellCommandExecContext {\n if (ctx.command !== ServiceCommand.START) {\n throw new Error(`The command ${ctx.command} is not supported`);\n }\n\n const env : Record<string, string | undefined> = ctx.env || {};\n\n const data = ctx.container.getData('client/web');\n const config = buildConfig({\n data,\n env: true,\n });\n\n if (config.host) {\n env.HOST = config.host;\n }\n\n if (config.port) {\n env.PORT = `${config.port}`;\n }\n\n if (config.apiUrl) {\n env.API_URL = config.apiUrl;\n }\n\n if (config.publicUrl) {\n env.PUBLIC_URL = config.publicUrl;\n }\n\n let command : string;\n\n const modulePath = findModulePath(ServicePackageName.CLIENT_WEB);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, '.output', 'server', 'index.mjs');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.CLIENT_WEB}`;\n }\n\n return {\n ...ctx,\n command,\n env: extendEnv(env),\n };\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/server-core';\nimport { buildConfig, parseConfig } from '@authup/server-core';\n\nexport async function buildServerCoreConfig(container: Container): Promise<Config> {\n const data = parseConfig(container.getData('server/core'));\n\n return buildConfig({\n data,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nexport function buildServerCoreExecutionContext(\n ctx: ShellCommandExecContext,\n) : ShellCommandExecContext {\n let command : string;\n const modulePath = findModulePath(ServicePackageName.SERVER_CORE);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, 'dist', 'cli', 'index.js');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.SERVER_CORE}`;\n }\n\n switch (ctx.command) {\n case ServiceCommand.START: {\n command += ' start';\n break;\n }\n case ServiceCommand.CLEANUP: {\n command += ' reset';\n break;\n }\n default: {\n throw new Error(`The command ${ctx.command} is not supported.`);\n }\n }\n\n return {\n ...ctx,\n command,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Container } from '@authup/config';\nimport type { CAC } from 'cac';\nimport consola from 'consola';\nimport { buildClientWebConfig, buildServerCoreConfig } from '../services';\n\nexport function buildInfoCommand(cac: CAC) {\n cac.command('info', 'Get information about the configuration.')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (ctx: Record<string, any>) => {\n const container = new Container({\n prefix: 'authup',\n keys: [\n 'client/web',\n 'server/core',\n ],\n });\n if (ctx.config) {\n await container.loadFromFilePath(ctx.config);\n } else {\n await container.load();\n }\n\n const clientWeb = await buildClientWebConfig(container);\n consola.info(`Host: ${clientWeb.host}`);\n consola.info(`Port: ${clientWeb.port}`);\n consola.info('------------');\n\n const serverCore = await buildServerCoreConfig(container);\n consola.info(`Host: ${serverCore.host}`);\n consola.info(`Port: ${serverCore.port}`);\n consola.info(`Environment: ${serverCore.env}`);\n consola.info(`RootPath: ${serverCore.rootPath}`);\n consola.info(`WritableDirectoryPath: ${serverCore.writableDirectoryPath}`);\n consola.info('------------');\n\n consola.info('Report an issue: https://github.com/authup/authup/issues/new');\n consola.info('Suggest an improvement: https://github.com/authup/authup/discussions/new');\n consola.info('Read documentation: https://authup.org');\n });\n}\n","import type { ChildProcess } from 'node:child_process';\nimport process from 'node:process';\nimport readline from 'node:readline';\nimport { Container, EnvKey, deserializeKey } from '@authup/config';\nimport type { Key } from '@authup/config';\nimport chalk from 'chalk';\nimport consola from 'consola';\nimport type { ShellCommandExecContext } from '../utils';\nimport { execShellCommand } from '../utils';\nimport { isServiceValid } from './check';\nimport { buildWebAppExecutionContext } from './client-web';\nimport { buildServerCoreExecutionContext } from './server-core';\n\ntype ServicesCommandExecutionContext = {\n config?: string,\n command: string,\n services: string[],\n servicesAllowed?: string[]\n};\n\ntype ServiceCommandExecutionContext = {\n command: string,\n service: string | Key,\n container: Container,\n};\n\nasync function executeServiceCommand(\n context: ServiceCommandExecutionContext,\n) : Promise<ChildProcess> {\n let service : Key;\n if (typeof context.service === 'string') {\n service = deserializeKey(context.service);\n } else {\n service = context.service;\n }\n\n const env : Record<string, any> = {};\n const config = context.container.get(`${service.group}/${service.name}`);\n if (config) {\n const paths = config.paths.join(',');\n if (paths.length > 0) {\n env[EnvKey.CONFIG_FILE] = paths;\n }\n }\n\n let shellExecContext : ShellCommandExecContext | undefined;\n try {\n if (\n service.group === 'server' &&\n service.name === 'core'\n ) {\n shellExecContext = buildServerCoreExecutionContext({\n command: context.command,\n env,\n });\n }\n\n if (\n service.group === 'client' &&\n service.name === 'web'\n ) {\n shellExecContext = buildWebAppExecutionContext({\n container: context.container,\n command: context.command,\n env,\n });\n }\n } catch (e) {\n consola.error(`${service.group}/${service.name}: The service command ${context.command} not supported.`);\n process.exit(1);\n }\n\n if (!shellExecContext) {\n consola.error(`${service.group}/${service.name}: The service is not supported.`);\n process.exit(1);\n }\n\n return execShellCommand({\n ...shellExecContext,\n logDataStream(line) {\n consola.info(`${service.group}/${service.name}: ${line}`);\n },\n logErrorStream(line) {\n consola.warn(`${service.group}/${service.name}: ${line}`);\n },\n });\n}\n\nexport async function executeServicesCommand(\n context: ServicesCommandExecutionContext,\n) {\n const container = new Container({\n prefix: 'authup',\n keys: context.servicesAllowed || context.services,\n });\n\n if (context.config) {\n await container.loadFromFilePath(context.config);\n } else {\n await container.load();\n }\n\n const promises : Promise<ChildProcess>[] = [];\n for (let i = 0; i < context.services.length; i++) {\n const service = deserializeKey(context.services[i]);\n if (!isServiceValid(service)) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not exist.`);\n process.exit(1);\n }\n\n if (\n context.servicesAllowed &&\n context.servicesAllowed.indexOf(`${service.group}/${service.name}`) === -1\n ) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not support the ${context.command} command.`);\n process.exit(1);\n }\n\n promises.push(executeServiceCommand({\n command: context.command,\n service,\n container,\n }));\n }\n\n const childProcesses = await Promise.all(promises);\n const readLine = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n readLine.on('SIGINT', () => {\n for (let i = 0; i < childProcesses.length; i++) {\n childProcesses[i].kill();\n }\n\n process.exit();\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport { ServiceCommand } from '../services';\n\nexport function buildCleanupCommand(cac: CAC) {\n cac\n .command('cleanup [...services]', 'Cleanup a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = ['server/core'];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.CLEANUP,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport {\n ServiceCommand,\n} from '../services';\n\nexport function buildStartCommand(cac: CAC) {\n cac\n .command('start [...services]', 'Start a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = [\n 'client/web',\n 'server/core',\n ];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.START,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","#!/usr/bin/env node\n\n/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cac from 'cac';\n\nimport {\n buildCleanupCommand,\n buildInfoCommand,\n buildStartCommand,\n} from './commands';\n\nconst cli = cac();\n\nbuildInfoCommand(cli);\nbuildStartCommand(cli);\nbuildCleanupCommand(cli);\n\ncli.help();\n\ncli.parse();\n"],"names":["isServiceValid","input","key","deserializeKey","group","name","buildClientWebConfig","container","client","getData","server","apiUrl","publicUrl","makeURLPublicAccessible","authorizeRedirectUrl","buildConfig","data","env","ServicePackageName","ServiceCommand","removeLineBreaks","replace","parseProcessOutputData","lines","split","filter","element","items","i","length","line","trim","parsed","JSON","parse","isObject","hasOwnProperty","message","push","e","stringifyObjectArgs","ob","parts","keys","Object","join","execShellCommand","ctx","args","Promise","resolve","reject","childProcess","exec","command","PATH","process","envFromProcess","on","stderr","setEncoding","logErrorStream","stdout","logDataStream","PACKAGE_DIRECTORY","path","__dirname","findModulePath","module","modulePath","findUpPackagePath","cwd","undefined","extendEnv","match","buildWebAppExecutionContext","START","Error","config","host","HOST","port","PORT","API_URL","PUBLIC_URL","CLIENT_WEB","directory","dirname","outputPath","buildServerCoreConfig","parseConfig","buildServerCoreExecutionContext","SERVER_CORE","CLEANUP","buildInfoCommand","cac","option","action","Container","prefix","loadFromFilePath","load","clientWeb","consola","info","serverCore","rootPath","writableDirectoryPath","executeServiceCommand","context","service","get","paths","EnvKey","CONFIG_FILE","shellExecContext","error","exit","warn","executeServicesCommand","servicesAllowed","services","promises","chalk","red","indexOf","childProcesses","all","readLine","readline","createInterface","stdin","output","kill","buildCleanupCommand","keysInput","buildStartCommand","cli","help"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/services/check.ts","../src/services/client-web/config.ts","../src/services/constants.ts","../src/utils/line-breaks.ts","../src/utils/process-output.ts","../src/utils/stringify-object-args.ts","../src/utils/shell.ts","../src/constants.ts","../src/utils/modules-path.ts","../src/services/client-web/execute.ts","../src/services/server-core/config.ts","../src/services/server-core/execute.ts","../src/commands/info.ts","../src/services/execute.ts","../src/commands/cleanup.ts","../src/commands/start.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Key } from '@authup/config';\nimport { deserializeKey } from '@authup/config';\n\nexport function isServiceValid(input: Key | string) : boolean {\n let key : Key;\n if (typeof input === 'string') {\n key = deserializeKey(input);\n } else {\n key = input;\n }\n\n if (key.group !== 'client' && key.group !== 'server') {\n return false;\n }\n\n if (key.group === 'client') {\n return key.name === 'web';\n }\n\n return key.name === 'core';\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/client-web-config';\nimport { buildConfig } from '@authup/client-web-config';\nimport { makeURLPublicAccessible } from '@authup/kit';\n\nexport async function buildClientWebConfig(container: Container): Promise<Config> {\n const client = container.getData('client/web');\n const server = container.getData('server/core');\n\n if (server) {\n if (\n !client.apiUrl &&\n typeof server.publicUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.publicUrl);\n }\n\n if (\n !client.publicUrl &&\n typeof server.authorizeRedirectUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.authorizeRedirectUrl);\n }\n }\n\n return buildConfig({\n data: client,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServicePackageName {\n CLIENT_WEB = '@authup/client-web',\n SERVER_CORE = '@authup/server-core',\n}\n\nexport enum ServiceCommand {\n START = 'start',\n CLEANUP = 'cleanup',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function removeLineBreaks(input: string) {\n return input.replace(/(\\r\\n|\\n|\\r)/gm, '');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hasOwnProperty, isObject } from '@authup/kit';\nimport { removeLineBreaks } from './line-breaks';\n\nexport function parseProcessOutputData(input: unknown) : string[] {\n if (typeof input !== 'string') {\n return [];\n }\n\n const lines = input\n .split(/\\r?\\n/)\n .filter((element) => element);\n\n const items : string[] = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = removeLineBreaks(lines[i]).trim();\n if (line.length === 0) {\n continue;\n }\n\n try {\n const parsed = JSON.parse(line);\n\n if (\n isObject(parsed) &&\n hasOwnProperty(parsed, 'message') &&\n typeof parsed.message === 'string'\n ) {\n items.push(parsed.message);\n continue;\n }\n } catch (e) {\n // no json :/\n }\n\n items.push(line);\n }\n\n return items;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function stringifyObjectArgs(ob: Record<string, any>) {\n const parts : string[] = [];\n\n const keys = Object.keys(ob);\n for (let i = 0; i < keys.length; i++) {\n parts.push(`--${keys[i]} ${ob[keys[i]]}`);\n }\n\n return parts.join(' ');\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ChildProcess } from 'node:child_process';\nimport { exec } from 'node:child_process';\nimport process from 'node:process';\nimport { parseProcessOutputData } from './process-output';\nimport { stringifyObjectArgs } from './stringify-object-args';\n\nexport type ShellCommandExecContext = {\n command: string,\n env?: Record<string, string | undefined>,\n envFromProcess?: boolean,\n args?: Record<string, any>,\n logErrorStream?: (content: string) => void,\n logDataStream?: (content: string) => void\n};\n\nexport async function execShellCommand(\n ctx: ShellCommandExecContext,\n) {\n ctx.env = ctx.env || {};\n ctx.args = ctx.args || {};\n\n return new Promise<ChildProcess>((resolve, reject) => {\n const childProcess = exec(`${ctx.command} ${stringifyObjectArgs(ctx.args)}`, {\n env: {\n PATH: process.env.PATH,\n ...(ctx.envFromProcess ? process.env : {}),\n ...ctx.env,\n },\n });\n\n childProcess.on('error', (data) => {\n reject(data);\n });\n\n childProcess.on('spawn', () => {\n resolve(childProcess);\n });\n\n childProcess.stderr.setEncoding('utf-8');\n childProcess.stderr.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (ctx.logErrorStream) {\n ctx.logErrorStream(data);\n }\n });\n\n childProcess.stdout.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (!ctx.logDataStream) {\n return;\n }\n\n const lines = parseProcessOutputData(data);\n for (let i = 0; i < lines.length; i++) {\n ctx.logDataStream(lines[i]);\n }\n });\n });\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\n\nexport const PACKAGE_DIRECTORY = path.join(__dirname, '..');\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport process from 'node:process';\nimport findUpPackagePath from 'resolve-package-path';\nimport { PACKAGE_DIRECTORY } from '../constants';\n\nexport function findModulePath(module: string) : string | undefined {\n let modulePath = findUpPackagePath(module, PACKAGE_DIRECTORY);\n if (PACKAGE_DIRECTORY !== process.cwd()) {\n modulePath = findUpPackagePath(module, process.cwd());\n }\n\n if (!modulePath) {\n return undefined;\n }\n\n return modulePath;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildConfig } from '@authup/client-web-config';\nimport type { Container } from '@authup/config';\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nfunction extendEnv(input: Record<string, string | undefined>) {\n const env : Record<string, any> = {};\n\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n env[keys[i]] = input[keys[i]];\n\n if (!keys[i].match(/^(?:NUXT|NITRO)_.*$/)) {\n env[`NUXT_PUBLIC_${keys[i]}`] = input[keys[i]];\n }\n }\n\n return env;\n}\n\ntype WebAppExecutionContext = ShellCommandExecContext & {\n container: Container\n};\n\nexport function buildWebAppExecutionContext(\n ctx: WebAppExecutionContext,\n) : ShellCommandExecContext {\n if (ctx.command !== ServiceCommand.START) {\n throw new Error(`The command ${ctx.command} is not supported`);\n }\n\n const env : Record<string, string | undefined> = ctx.env || {};\n\n const data = ctx.container.getData('client/web');\n const config = buildConfig({\n data,\n env: true,\n });\n\n if (config.host) {\n env.HOST = config.host;\n }\n\n if (config.port) {\n env.PORT = `${config.port}`;\n }\n\n if (config.apiUrl) {\n env.API_URL = config.apiUrl;\n }\n\n if (config.publicUrl) {\n env.PUBLIC_URL = config.publicUrl;\n }\n\n let command : string;\n\n const modulePath = findModulePath(ServicePackageName.CLIENT_WEB);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, '.output', 'server', 'index.mjs');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.CLIENT_WEB}`;\n }\n\n return {\n ...ctx,\n command,\n env: extendEnv(env),\n };\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/server-core';\nimport { buildConfig, parseConfig } from '@authup/server-core';\n\nexport async function buildServerCoreConfig(container: Container): Promise<Config> {\n const data = parseConfig(container.getData('server/core'));\n\n return buildConfig({\n data,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nexport function buildServerCoreExecutionContext(\n ctx: ShellCommandExecContext,\n) : ShellCommandExecContext {\n let command : string;\n const modulePath = findModulePath(ServicePackageName.SERVER_CORE);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, 'dist', 'cli', 'index.js');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.SERVER_CORE}`;\n }\n\n switch (ctx.command) {\n case ServiceCommand.START: {\n command += ' start';\n break;\n }\n case ServiceCommand.CLEANUP: {\n command += ' reset';\n break;\n }\n default: {\n throw new Error(`The command ${ctx.command} is not supported.`);\n }\n }\n\n return {\n ...ctx,\n command,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Container } from '@authup/config';\nimport type { CAC } from 'cac';\nimport consola from 'consola';\nimport { buildClientWebConfig, buildServerCoreConfig } from '../services';\n\nexport function buildInfoCommand(cac: CAC) {\n cac.command('info', 'Get information about the configuration.')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (ctx: Record<string, any>) => {\n const container = new Container({\n prefix: 'authup',\n keys: [\n 'client/web',\n 'server/core',\n ],\n });\n if (ctx.config) {\n await container.loadFromFilePath(ctx.config);\n } else {\n await container.load();\n }\n\n const clientWeb = await buildClientWebConfig(container);\n consola.info(`Host: ${clientWeb.host}`);\n consola.info(`Port: ${clientWeb.port}`);\n consola.info('------------');\n\n const serverCore = await buildServerCoreConfig(container);\n consola.info(`Host: ${serverCore.host}`);\n consola.info(`Port: ${serverCore.port}`);\n consola.info(`Environment: ${serverCore.env}`);\n consola.info(`RootPath: ${serverCore.rootPath}`);\n consola.info(`WritableDirectoryPath: ${serverCore.writableDirectoryPath}`);\n consola.info('------------');\n\n consola.info('Report an issue: https://github.com/authup/authup/issues/new');\n consola.info('Suggest an improvement: https://github.com/authup/authup/discussions/new');\n consola.info('Read documentation: https://authup.org');\n });\n}\n","import type { ChildProcess } from 'node:child_process';\nimport process from 'node:process';\nimport readline from 'node:readline';\nimport { Container, EnvKey, deserializeKey } from '@authup/config';\nimport type { Key } from '@authup/config';\nimport chalk from 'chalk';\nimport consola from 'consola';\nimport type { ShellCommandExecContext } from '../utils';\nimport { execShellCommand } from '../utils';\nimport { isServiceValid } from './check';\nimport { buildWebAppExecutionContext } from './client-web';\nimport { buildServerCoreExecutionContext } from './server-core';\n\ntype ServicesCommandExecutionContext = {\n config?: string,\n command: string,\n services: string[],\n servicesAllowed?: string[]\n};\n\ntype ServiceCommandExecutionContext = {\n command: string,\n service: string | Key,\n container: Container,\n};\n\nasync function executeServiceCommand(\n context: ServiceCommandExecutionContext,\n) : Promise<ChildProcess> {\n let service : Key;\n if (typeof context.service === 'string') {\n service = deserializeKey(context.service);\n } else {\n service = context.service;\n }\n\n const env : Record<string, any> = {};\n const config = context.container.get(`${service.group}/${service.name}`);\n if (config) {\n const paths = config.paths.join(',');\n if (paths.length > 0) {\n env[EnvKey.CONFIG_FILE] = paths;\n }\n }\n\n let shellExecContext : ShellCommandExecContext | undefined;\n try {\n if (\n service.group === 'server' &&\n service.name === 'core'\n ) {\n shellExecContext = buildServerCoreExecutionContext({\n command: context.command,\n env,\n });\n }\n\n if (\n service.group === 'client' &&\n service.name === 'web'\n ) {\n shellExecContext = buildWebAppExecutionContext({\n container: context.container,\n command: context.command,\n env,\n });\n }\n } catch (e) {\n consola.error(`${service.group}/${service.name}: The service command ${context.command} not supported.`);\n process.exit(1);\n }\n\n if (!shellExecContext) {\n consola.error(`${service.group}/${service.name}: The service is not supported.`);\n process.exit(1);\n }\n\n return execShellCommand({\n ...shellExecContext,\n logDataStream(line) {\n consola.info(`${service.group}/${service.name}: ${line}`);\n },\n logErrorStream(line) {\n consola.warn(`${service.group}/${service.name}: ${line}`);\n },\n });\n}\n\nexport async function executeServicesCommand(\n context: ServicesCommandExecutionContext,\n) {\n const container = new Container({\n prefix: 'authup',\n keys: context.servicesAllowed || context.services,\n });\n\n if (context.config) {\n await container.loadFromFilePath(context.config);\n } else {\n await container.load();\n }\n\n const promises : Promise<ChildProcess>[] = [];\n for (let i = 0; i < context.services.length; i++) {\n const service = deserializeKey(context.services[i]);\n if (!isServiceValid(service)) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not exist.`);\n process.exit(1);\n }\n\n if (\n context.servicesAllowed &&\n context.servicesAllowed.indexOf(`${service.group}/${service.name}`) === -1\n ) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not support the ${context.command} command.`);\n process.exit(1);\n }\n\n promises.push(executeServiceCommand({\n command: context.command,\n service,\n container,\n }));\n }\n\n const childProcesses = await Promise.all(promises);\n const readLine = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n readLine.on('SIGINT', () => {\n for (let i = 0; i < childProcesses.length; i++) {\n childProcesses[i].kill();\n }\n\n process.exit();\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport { ServiceCommand } from '../services';\n\nexport function buildCleanupCommand(cac: CAC) {\n cac\n .command('cleanup [...services]', 'Cleanup a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = ['server/core'];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.CLEANUP,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport {\n ServiceCommand,\n} from '../services';\n\nexport function buildStartCommand(cac: CAC) {\n cac\n .command('start [...services]', 'Start a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = [\n 'client/web',\n 'server/core',\n ];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.START,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","#!/usr/bin/env node\n\n/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cac from 'cac';\n\nimport {\n buildCleanupCommand,\n buildInfoCommand,\n buildStartCommand,\n} from './commands';\n\nconst cli = cac();\n\nbuildInfoCommand(cli);\nbuildStartCommand(cli);\nbuildCleanupCommand(cli);\n\ncli.help();\n\ncli.parse();\n"],"names":["isServiceValid","input","key","deserializeKey","group","name","buildClientWebConfig","container","client","getData","server","apiUrl","publicUrl","makeURLPublicAccessible","authorizeRedirectUrl","buildConfig","data","env","ServicePackageName","ServiceCommand","removeLineBreaks","replace","parseProcessOutputData","lines","split","filter","element","items","i","length","line","trim","parsed","JSON","parse","isObject","hasOwnProperty","message","push","e","stringifyObjectArgs","ob","parts","keys","Object","join","execShellCommand","ctx","args","Promise","resolve","reject","childProcess","exec","command","PATH","process","envFromProcess","on","stderr","setEncoding","logErrorStream","stdout","logDataStream","PACKAGE_DIRECTORY","path","__dirname","findModulePath","module","modulePath","findUpPackagePath","cwd","undefined","extendEnv","match","buildWebAppExecutionContext","START","Error","config","host","HOST","port","PORT","API_URL","PUBLIC_URL","CLIENT_WEB","directory","dirname","outputPath","buildServerCoreConfig","parseConfig","buildServerCoreExecutionContext","SERVER_CORE","CLEANUP","buildInfoCommand","cac","option","action","Container","prefix","loadFromFilePath","load","clientWeb","consola","info","serverCore","rootPath","writableDirectoryPath","executeServiceCommand","context","service","get","paths","EnvKey","CONFIG_FILE","shellExecContext","error","exit","warn","executeServicesCommand","servicesAllowed","services","promises","chalk","red","indexOf","childProcesses","all","readLine","readline","createInterface","stdin","output","kill","buildCleanupCommand","keysInput","buildStartCommand","cli","help"],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -3,11 +3,10 @@ import cac from 'cac';
|
|
|
3
3
|
import { deserializeKey, Container, EnvKey } from '@authup/config';
|
|
4
4
|
import consola from 'consola';
|
|
5
5
|
import { buildConfig } from '@authup/client-web-config';
|
|
6
|
-
import { makeURLPublicAccessible } from '@authup/kit';
|
|
6
|
+
import { makeURLPublicAccessible, isObject, hasOwnProperty } from '@authup/kit';
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import { exec } from 'node:child_process';
|
|
9
9
|
import process from 'node:process';
|
|
10
|
-
import { isObject, hasOwnProperty } from 'smob';
|
|
11
10
|
import findUpPackagePath from 'resolve-package-path';
|
|
12
11
|
import { parseConfig, buildConfig as buildConfig$1 } from '@authup/server-core';
|
|
13
12
|
import readline from 'node:readline';
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/services/check.ts","../src/services/client-web/config.ts","../src/services/constants.ts","../src/utils/line-breaks.ts","../src/utils/process-output.ts","../src/utils/stringify-object-args.ts","../src/utils/shell.ts","../src/constants.ts","../src/utils/modules-path.ts","../src/services/client-web/execute.ts","../src/services/server-core/config.ts","../src/services/server-core/execute.ts","../src/commands/info.ts","../src/services/execute.ts","../src/commands/cleanup.ts","../src/commands/start.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Key } from '@authup/config';\nimport { deserializeKey } from '@authup/config';\n\nexport function isServiceValid(input: Key | string) : boolean {\n let key : Key;\n if (typeof input === 'string') {\n key = deserializeKey(input);\n } else {\n key = input;\n }\n\n if (key.group !== 'client' && key.group !== 'server') {\n return false;\n }\n\n if (key.group === 'client') {\n return key.name === 'web';\n }\n\n return key.name === 'core';\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/client-web-config';\nimport { buildConfig } from '@authup/client-web-config';\nimport { makeURLPublicAccessible } from '@authup/kit';\n\nexport async function buildClientWebConfig(container: Container): Promise<Config> {\n const client = container.getData('client/web');\n const server = container.getData('server/core');\n\n if (server) {\n if (\n !client.apiUrl &&\n typeof server.publicUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.publicUrl);\n }\n\n if (\n !client.publicUrl &&\n typeof server.authorizeRedirectUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.authorizeRedirectUrl);\n }\n }\n\n return buildConfig({\n data: client,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServicePackageName {\n CLIENT_WEB = '@authup/client-web',\n SERVER_CORE = '@authup/server-core',\n}\n\nexport enum ServiceCommand {\n START = 'start',\n CLEANUP = 'cleanup',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function removeLineBreaks(input: string) {\n return input.replace(/(\\r\\n|\\n|\\r)/gm, '');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hasOwnProperty, isObject } from 'smob';\nimport { removeLineBreaks } from './line-breaks';\n\nexport function parseProcessOutputData(input: unknown) : string[] {\n if (typeof input !== 'string') {\n return [];\n }\n\n const lines = input\n .split(/\\r?\\n/)\n .filter((element) => element);\n\n const items : string[] = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = removeLineBreaks(lines[i]).trim();\n if (line.length === 0) {\n continue;\n }\n\n try {\n const parsed = JSON.parse(line);\n\n if (\n isObject(parsed) &&\n hasOwnProperty(parsed, 'message') &&\n typeof parsed.message === 'string'\n ) {\n items.push(parsed.message);\n continue;\n }\n } catch (e) {\n // no json :/\n }\n\n items.push(line);\n }\n\n return items;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function stringifyObjectArgs(ob: Record<string, any>) {\n const parts : string[] = [];\n\n const keys = Object.keys(ob);\n for (let i = 0; i < keys.length; i++) {\n parts.push(`--${keys[i]} ${ob[keys[i]]}`);\n }\n\n return parts.join(' ');\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ChildProcess } from 'node:child_process';\nimport { exec } from 'node:child_process';\nimport process from 'node:process';\nimport { parseProcessOutputData } from './process-output';\nimport { stringifyObjectArgs } from './stringify-object-args';\n\nexport type ShellCommandExecContext = {\n command: string,\n env?: Record<string, string | undefined>,\n envFromProcess?: boolean,\n args?: Record<string, any>,\n logErrorStream?: (content: string) => void,\n logDataStream?: (content: string) => void\n};\n\nexport async function execShellCommand(\n ctx: ShellCommandExecContext,\n) {\n ctx.env = ctx.env || {};\n ctx.args = ctx.args || {};\n\n return new Promise<ChildProcess>((resolve, reject) => {\n const childProcess = exec(`${ctx.command} ${stringifyObjectArgs(ctx.args)}`, {\n env: {\n PATH: process.env.PATH,\n ...(ctx.envFromProcess ? process.env : {}),\n ...ctx.env,\n },\n });\n\n childProcess.on('error', (data) => {\n reject(data);\n });\n\n childProcess.on('spawn', () => {\n resolve(childProcess);\n });\n\n childProcess.stderr.setEncoding('utf-8');\n childProcess.stderr.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (ctx.logErrorStream) {\n ctx.logErrorStream(data);\n }\n });\n\n childProcess.stdout.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (!ctx.logDataStream) {\n return;\n }\n\n const lines = parseProcessOutputData(data);\n for (let i = 0; i < lines.length; i++) {\n ctx.logDataStream(lines[i]);\n }\n });\n });\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\n\nexport const PACKAGE_DIRECTORY = path.join(__dirname, '..');\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport process from 'node:process';\nimport findUpPackagePath from 'resolve-package-path';\nimport { PACKAGE_DIRECTORY } from '../constants';\n\nexport function findModulePath(module: string) : string | undefined {\n let modulePath = findUpPackagePath(module, PACKAGE_DIRECTORY);\n if (PACKAGE_DIRECTORY !== process.cwd()) {\n modulePath = findUpPackagePath(module, process.cwd());\n }\n\n if (!modulePath) {\n return undefined;\n }\n\n return modulePath;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildConfig } from '@authup/client-web-config';\nimport type { Container } from '@authup/config';\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nfunction extendEnv(input: Record<string, string | undefined>) {\n const env : Record<string, any> = {};\n\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n env[keys[i]] = input[keys[i]];\n\n if (!keys[i].match(/^(?:NUXT|NITRO)_.*$/)) {\n env[`NUXT_PUBLIC_${keys[i]}`] = input[keys[i]];\n }\n }\n\n return env;\n}\n\ntype WebAppExecutionContext = ShellCommandExecContext & {\n container: Container\n};\n\nexport function buildWebAppExecutionContext(\n ctx: WebAppExecutionContext,\n) : ShellCommandExecContext {\n if (ctx.command !== ServiceCommand.START) {\n throw new Error(`The command ${ctx.command} is not supported`);\n }\n\n const env : Record<string, string | undefined> = ctx.env || {};\n\n const data = ctx.container.getData('client/web');\n const config = buildConfig({\n data,\n env: true,\n });\n\n if (config.host) {\n env.HOST = config.host;\n }\n\n if (config.port) {\n env.PORT = `${config.port}`;\n }\n\n if (config.apiUrl) {\n env.API_URL = config.apiUrl;\n }\n\n if (config.publicUrl) {\n env.PUBLIC_URL = config.publicUrl;\n }\n\n let command : string;\n\n const modulePath = findModulePath(ServicePackageName.CLIENT_WEB);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, '.output', 'server', 'index.mjs');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.CLIENT_WEB}`;\n }\n\n return {\n ...ctx,\n command,\n env: extendEnv(env),\n };\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/server-core';\nimport { buildConfig, parseConfig } from '@authup/server-core';\n\nexport async function buildServerCoreConfig(container: Container): Promise<Config> {\n const data = parseConfig(container.getData('server/core'));\n\n return buildConfig({\n data,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nexport function buildServerCoreExecutionContext(\n ctx: ShellCommandExecContext,\n) : ShellCommandExecContext {\n let command : string;\n const modulePath = findModulePath(ServicePackageName.SERVER_CORE);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, 'dist', 'cli', 'index.js');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.SERVER_CORE}`;\n }\n\n switch (ctx.command) {\n case ServiceCommand.START: {\n command += ' start';\n break;\n }\n case ServiceCommand.CLEANUP: {\n command += ' reset';\n break;\n }\n default: {\n throw new Error(`The command ${ctx.command} is not supported.`);\n }\n }\n\n return {\n ...ctx,\n command,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Container } from '@authup/config';\nimport type { CAC } from 'cac';\nimport consola from 'consola';\nimport { buildClientWebConfig, buildServerCoreConfig } from '../services';\n\nexport function buildInfoCommand(cac: CAC) {\n cac.command('info', 'Get information about the configuration.')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (ctx: Record<string, any>) => {\n const container = new Container({\n prefix: 'authup',\n keys: [\n 'client/web',\n 'server/core',\n ],\n });\n if (ctx.config) {\n await container.loadFromFilePath(ctx.config);\n } else {\n await container.load();\n }\n\n const clientWeb = await buildClientWebConfig(container);\n consola.info(`Host: ${clientWeb.host}`);\n consola.info(`Port: ${clientWeb.port}`);\n consola.info('------------');\n\n const serverCore = await buildServerCoreConfig(container);\n consola.info(`Host: ${serverCore.host}`);\n consola.info(`Port: ${serverCore.port}`);\n consola.info(`Environment: ${serverCore.env}`);\n consola.info(`RootPath: ${serverCore.rootPath}`);\n consola.info(`WritableDirectoryPath: ${serverCore.writableDirectoryPath}`);\n consola.info('------------');\n\n consola.info('Report an issue: https://github.com/authup/authup/issues/new');\n consola.info('Suggest an improvement: https://github.com/authup/authup/discussions/new');\n consola.info('Read documentation: https://authup.org');\n });\n}\n","import type { ChildProcess } from 'node:child_process';\nimport process from 'node:process';\nimport readline from 'node:readline';\nimport { Container, EnvKey, deserializeKey } from '@authup/config';\nimport type { Key } from '@authup/config';\nimport chalk from 'chalk';\nimport consola from 'consola';\nimport type { ShellCommandExecContext } from '../utils';\nimport { execShellCommand } from '../utils';\nimport { isServiceValid } from './check';\nimport { buildWebAppExecutionContext } from './client-web';\nimport { buildServerCoreExecutionContext } from './server-core';\n\ntype ServicesCommandExecutionContext = {\n config?: string,\n command: string,\n services: string[],\n servicesAllowed?: string[]\n};\n\ntype ServiceCommandExecutionContext = {\n command: string,\n service: string | Key,\n container: Container,\n};\n\nasync function executeServiceCommand(\n context: ServiceCommandExecutionContext,\n) : Promise<ChildProcess> {\n let service : Key;\n if (typeof context.service === 'string') {\n service = deserializeKey(context.service);\n } else {\n service = context.service;\n }\n\n const env : Record<string, any> = {};\n const config = context.container.get(`${service.group}/${service.name}`);\n if (config) {\n const paths = config.paths.join(',');\n if (paths.length > 0) {\n env[EnvKey.CONFIG_FILE] = paths;\n }\n }\n\n let shellExecContext : ShellCommandExecContext | undefined;\n try {\n if (\n service.group === 'server' &&\n service.name === 'core'\n ) {\n shellExecContext = buildServerCoreExecutionContext({\n command: context.command,\n env,\n });\n }\n\n if (\n service.group === 'client' &&\n service.name === 'web'\n ) {\n shellExecContext = buildWebAppExecutionContext({\n container: context.container,\n command: context.command,\n env,\n });\n }\n } catch (e) {\n consola.error(`${service.group}/${service.name}: The service command ${context.command} not supported.`);\n process.exit(1);\n }\n\n if (!shellExecContext) {\n consola.error(`${service.group}/${service.name}: The service is not supported.`);\n process.exit(1);\n }\n\n return execShellCommand({\n ...shellExecContext,\n logDataStream(line) {\n consola.info(`${service.group}/${service.name}: ${line}`);\n },\n logErrorStream(line) {\n consola.warn(`${service.group}/${service.name}: ${line}`);\n },\n });\n}\n\nexport async function executeServicesCommand(\n context: ServicesCommandExecutionContext,\n) {\n const container = new Container({\n prefix: 'authup',\n keys: context.servicesAllowed || context.services,\n });\n\n if (context.config) {\n await container.loadFromFilePath(context.config);\n } else {\n await container.load();\n }\n\n const promises : Promise<ChildProcess>[] = [];\n for (let i = 0; i < context.services.length; i++) {\n const service = deserializeKey(context.services[i]);\n if (!isServiceValid(service)) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not exist.`);\n process.exit(1);\n }\n\n if (\n context.servicesAllowed &&\n context.servicesAllowed.indexOf(`${service.group}/${service.name}`) === -1\n ) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not support the ${context.command} command.`);\n process.exit(1);\n }\n\n promises.push(executeServiceCommand({\n command: context.command,\n service,\n container,\n }));\n }\n\n const childProcesses = await Promise.all(promises);\n const readLine = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n readLine.on('SIGINT', () => {\n for (let i = 0; i < childProcesses.length; i++) {\n childProcesses[i].kill();\n }\n\n process.exit();\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport { ServiceCommand } from '../services';\n\nexport function buildCleanupCommand(cac: CAC) {\n cac\n .command('cleanup [...services]', 'Cleanup a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = ['server/core'];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.CLEANUP,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport {\n ServiceCommand,\n} from '../services';\n\nexport function buildStartCommand(cac: CAC) {\n cac\n .command('start [...services]', 'Start a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = [\n 'client/web',\n 'server/core',\n ];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.START,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","#!/usr/bin/env node\n\n/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cac from 'cac';\n\nimport {\n buildCleanupCommand,\n buildInfoCommand,\n buildStartCommand,\n} from './commands';\n\nconst cli = cac();\n\nbuildInfoCommand(cli);\nbuildStartCommand(cli);\nbuildCleanupCommand(cli);\n\ncli.help();\n\ncli.parse();\n"],"names":["isServiceValid","input","key","deserializeKey","group","name","buildClientWebConfig","container","client","getData","server","apiUrl","publicUrl","makeURLPublicAccessible","authorizeRedirectUrl","buildConfig","data","env","ServicePackageName","ServiceCommand","removeLineBreaks","replace","parseProcessOutputData","lines","split","filter","element","items","i","length","line","trim","parsed","JSON","parse","isObject","hasOwnProperty","message","push","e","stringifyObjectArgs","ob","parts","keys","Object","join","execShellCommand","ctx","args","Promise","resolve","reject","childProcess","exec","command","PATH","process","envFromProcess","on","stderr","setEncoding","logErrorStream","stdout","logDataStream","PACKAGE_DIRECTORY","path","__dirname","findModulePath","module","modulePath","findUpPackagePath","cwd","undefined","extendEnv","match","buildWebAppExecutionContext","START","Error","config","host","HOST","port","PORT","API_URL","PUBLIC_URL","CLIENT_WEB","directory","dirname","outputPath","buildServerCoreConfig","parseConfig","buildServerCoreExecutionContext","SERVER_CORE","CLEANUP","buildInfoCommand","cac","option","action","Container","prefix","loadFromFilePath","load","clientWeb","consola","info","serverCore","rootPath","writableDirectoryPath","executeServiceCommand","context","service","get","paths","EnvKey","CONFIG_FILE","shellExecContext","error","exit","warn","executeServicesCommand","servicesAllowed","services","promises","chalk","red","indexOf","childProcesses","all","readLine","readline","createInterface","stdin","output","kill","buildCleanupCommand","keysInput","buildStartCommand","cli","help"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/services/check.ts","../src/services/client-web/config.ts","../src/services/constants.ts","../src/utils/line-breaks.ts","../src/utils/process-output.ts","../src/utils/stringify-object-args.ts","../src/utils/shell.ts","../src/constants.ts","../src/utils/modules-path.ts","../src/services/client-web/execute.ts","../src/services/server-core/config.ts","../src/services/server-core/execute.ts","../src/commands/info.ts","../src/services/execute.ts","../src/commands/cleanup.ts","../src/commands/start.ts","../src/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Key } from '@authup/config';\nimport { deserializeKey } from '@authup/config';\n\nexport function isServiceValid(input: Key | string) : boolean {\n let key : Key;\n if (typeof input === 'string') {\n key = deserializeKey(input);\n } else {\n key = input;\n }\n\n if (key.group !== 'client' && key.group !== 'server') {\n return false;\n }\n\n if (key.group === 'client') {\n return key.name === 'web';\n }\n\n return key.name === 'core';\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/client-web-config';\nimport { buildConfig } from '@authup/client-web-config';\nimport { makeURLPublicAccessible } from '@authup/kit';\n\nexport async function buildClientWebConfig(container: Container): Promise<Config> {\n const client = container.getData('client/web');\n const server = container.getData('server/core');\n\n if (server) {\n if (\n !client.apiUrl &&\n typeof server.publicUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.publicUrl);\n }\n\n if (\n !client.publicUrl &&\n typeof server.authorizeRedirectUrl === 'string'\n ) {\n client.apiUrl = makeURLPublicAccessible(server.authorizeRedirectUrl);\n }\n }\n\n return buildConfig({\n data: client,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum ServicePackageName {\n CLIENT_WEB = '@authup/client-web',\n SERVER_CORE = '@authup/server-core',\n}\n\nexport enum ServiceCommand {\n START = 'start',\n CLEANUP = 'cleanup',\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function removeLineBreaks(input: string) {\n return input.replace(/(\\r\\n|\\n|\\r)/gm, '');\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { hasOwnProperty, isObject } from '@authup/kit';\nimport { removeLineBreaks } from './line-breaks';\n\nexport function parseProcessOutputData(input: unknown) : string[] {\n if (typeof input !== 'string') {\n return [];\n }\n\n const lines = input\n .split(/\\r?\\n/)\n .filter((element) => element);\n\n const items : string[] = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = removeLineBreaks(lines[i]).trim();\n if (line.length === 0) {\n continue;\n }\n\n try {\n const parsed = JSON.parse(line);\n\n if (\n isObject(parsed) &&\n hasOwnProperty(parsed, 'message') &&\n typeof parsed.message === 'string'\n ) {\n items.push(parsed.message);\n continue;\n }\n } catch (e) {\n // no json :/\n }\n\n items.push(line);\n }\n\n return items;\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport function stringifyObjectArgs(ob: Record<string, any>) {\n const parts : string[] = [];\n\n const keys = Object.keys(ob);\n for (let i = 0; i < keys.length; i++) {\n parts.push(`--${keys[i]} ${ob[keys[i]]}`);\n }\n\n return parts.join(' ');\n}\n","/*\n * Copyright (c) 2023-2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { ChildProcess } from 'node:child_process';\nimport { exec } from 'node:child_process';\nimport process from 'node:process';\nimport { parseProcessOutputData } from './process-output';\nimport { stringifyObjectArgs } from './stringify-object-args';\n\nexport type ShellCommandExecContext = {\n command: string,\n env?: Record<string, string | undefined>,\n envFromProcess?: boolean,\n args?: Record<string, any>,\n logErrorStream?: (content: string) => void,\n logDataStream?: (content: string) => void\n};\n\nexport async function execShellCommand(\n ctx: ShellCommandExecContext,\n) {\n ctx.env = ctx.env || {};\n ctx.args = ctx.args || {};\n\n return new Promise<ChildProcess>((resolve, reject) => {\n const childProcess = exec(`${ctx.command} ${stringifyObjectArgs(ctx.args)}`, {\n env: {\n PATH: process.env.PATH,\n ...(ctx.envFromProcess ? process.env : {}),\n ...ctx.env,\n },\n });\n\n childProcess.on('error', (data) => {\n reject(data);\n });\n\n childProcess.on('spawn', () => {\n resolve(childProcess);\n });\n\n childProcess.stderr.setEncoding('utf-8');\n childProcess.stderr.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (ctx.logErrorStream) {\n ctx.logErrorStream(data);\n }\n });\n\n childProcess.stdout.on('data', (data) => {\n if (typeof data !== 'string' || data.length === 0) {\n return;\n }\n\n if (!ctx.logDataStream) {\n return;\n }\n\n const lines = parseProcessOutputData(data);\n for (let i = 0; i < lines.length; i++) {\n ctx.logDataStream(lines[i]);\n }\n });\n });\n}\n","/*\n * Copyright (c) 2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\n\nexport const PACKAGE_DIRECTORY = path.join(__dirname, '..');\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport process from 'node:process';\nimport findUpPackagePath from 'resolve-package-path';\nimport { PACKAGE_DIRECTORY } from '../constants';\n\nexport function findModulePath(module: string) : string | undefined {\n let modulePath = findUpPackagePath(module, PACKAGE_DIRECTORY);\n if (PACKAGE_DIRECTORY !== process.cwd()) {\n modulePath = findUpPackagePath(module, process.cwd());\n }\n\n if (!modulePath) {\n return undefined;\n }\n\n return modulePath;\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { buildConfig } from '@authup/client-web-config';\nimport type { Container } from '@authup/config';\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nfunction extendEnv(input: Record<string, string | undefined>) {\n const env : Record<string, any> = {};\n\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n env[keys[i]] = input[keys[i]];\n\n if (!keys[i].match(/^(?:NUXT|NITRO)_.*$/)) {\n env[`NUXT_PUBLIC_${keys[i]}`] = input[keys[i]];\n }\n }\n\n return env;\n}\n\ntype WebAppExecutionContext = ShellCommandExecContext & {\n container: Container\n};\n\nexport function buildWebAppExecutionContext(\n ctx: WebAppExecutionContext,\n) : ShellCommandExecContext {\n if (ctx.command !== ServiceCommand.START) {\n throw new Error(`The command ${ctx.command} is not supported`);\n }\n\n const env : Record<string, string | undefined> = ctx.env || {};\n\n const data = ctx.container.getData('client/web');\n const config = buildConfig({\n data,\n env: true,\n });\n\n if (config.host) {\n env.HOST = config.host;\n }\n\n if (config.port) {\n env.PORT = `${config.port}`;\n }\n\n if (config.apiUrl) {\n env.API_URL = config.apiUrl;\n }\n\n if (config.publicUrl) {\n env.PUBLIC_URL = config.publicUrl;\n }\n\n let command : string;\n\n const modulePath = findModulePath(ServicePackageName.CLIENT_WEB);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, '.output', 'server', 'index.mjs');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.CLIENT_WEB}`;\n }\n\n return {\n ...ctx,\n command,\n env: extendEnv(env),\n };\n}\n","/*\n * Copyright (c) 2023.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Container } from '@authup/config';\nimport type { Config } from '@authup/server-core';\nimport { buildConfig, parseConfig } from '@authup/server-core';\n\nexport async function buildServerCoreConfig(container: Container): Promise<Config> {\n const data = parseConfig(container.getData('server/core'));\n\n return buildConfig({\n data,\n env: true,\n });\n}\n","/*\n * Copyright (c) 2022-2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport path from 'node:path';\nimport { ServiceCommand, ServicePackageName } from '../constants';\nimport type { ShellCommandExecContext } from '../../utils';\nimport { findModulePath } from '../../utils';\n\nexport function buildServerCoreExecutionContext(\n ctx: ShellCommandExecContext,\n) : ShellCommandExecContext {\n let command : string;\n const modulePath = findModulePath(ServicePackageName.SERVER_CORE);\n if (typeof modulePath === 'string') {\n const directory = path.dirname(modulePath);\n const outputPath = path.join(directory, 'dist', 'cli', 'index.js');\n command = `node ${outputPath}`;\n } else {\n command = `npx ${ServicePackageName.SERVER_CORE}`;\n }\n\n switch (ctx.command) {\n case ServiceCommand.START: {\n command += ' start';\n break;\n }\n case ServiceCommand.CLEANUP: {\n command += ' reset';\n break;\n }\n default: {\n throw new Error(`The command ${ctx.command} is not supported.`);\n }\n }\n\n return {\n ...ctx,\n command,\n };\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Container } from '@authup/config';\nimport type { CAC } from 'cac';\nimport consola from 'consola';\nimport { buildClientWebConfig, buildServerCoreConfig } from '../services';\n\nexport function buildInfoCommand(cac: CAC) {\n cac.command('info', 'Get information about the configuration.')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (ctx: Record<string, any>) => {\n const container = new Container({\n prefix: 'authup',\n keys: [\n 'client/web',\n 'server/core',\n ],\n });\n if (ctx.config) {\n await container.loadFromFilePath(ctx.config);\n } else {\n await container.load();\n }\n\n const clientWeb = await buildClientWebConfig(container);\n consola.info(`Host: ${clientWeb.host}`);\n consola.info(`Port: ${clientWeb.port}`);\n consola.info('------------');\n\n const serverCore = await buildServerCoreConfig(container);\n consola.info(`Host: ${serverCore.host}`);\n consola.info(`Port: ${serverCore.port}`);\n consola.info(`Environment: ${serverCore.env}`);\n consola.info(`RootPath: ${serverCore.rootPath}`);\n consola.info(`WritableDirectoryPath: ${serverCore.writableDirectoryPath}`);\n consola.info('------------');\n\n consola.info('Report an issue: https://github.com/authup/authup/issues/new');\n consola.info('Suggest an improvement: https://github.com/authup/authup/discussions/new');\n consola.info('Read documentation: https://authup.org');\n });\n}\n","import type { ChildProcess } from 'node:child_process';\nimport process from 'node:process';\nimport readline from 'node:readline';\nimport { Container, EnvKey, deserializeKey } from '@authup/config';\nimport type { Key } from '@authup/config';\nimport chalk from 'chalk';\nimport consola from 'consola';\nimport type { ShellCommandExecContext } from '../utils';\nimport { execShellCommand } from '../utils';\nimport { isServiceValid } from './check';\nimport { buildWebAppExecutionContext } from './client-web';\nimport { buildServerCoreExecutionContext } from './server-core';\n\ntype ServicesCommandExecutionContext = {\n config?: string,\n command: string,\n services: string[],\n servicesAllowed?: string[]\n};\n\ntype ServiceCommandExecutionContext = {\n command: string,\n service: string | Key,\n container: Container,\n};\n\nasync function executeServiceCommand(\n context: ServiceCommandExecutionContext,\n) : Promise<ChildProcess> {\n let service : Key;\n if (typeof context.service === 'string') {\n service = deserializeKey(context.service);\n } else {\n service = context.service;\n }\n\n const env : Record<string, any> = {};\n const config = context.container.get(`${service.group}/${service.name}`);\n if (config) {\n const paths = config.paths.join(',');\n if (paths.length > 0) {\n env[EnvKey.CONFIG_FILE] = paths;\n }\n }\n\n let shellExecContext : ShellCommandExecContext | undefined;\n try {\n if (\n service.group === 'server' &&\n service.name === 'core'\n ) {\n shellExecContext = buildServerCoreExecutionContext({\n command: context.command,\n env,\n });\n }\n\n if (\n service.group === 'client' &&\n service.name === 'web'\n ) {\n shellExecContext = buildWebAppExecutionContext({\n container: context.container,\n command: context.command,\n env,\n });\n }\n } catch (e) {\n consola.error(`${service.group}/${service.name}: The service command ${context.command} not supported.`);\n process.exit(1);\n }\n\n if (!shellExecContext) {\n consola.error(`${service.group}/${service.name}: The service is not supported.`);\n process.exit(1);\n }\n\n return execShellCommand({\n ...shellExecContext,\n logDataStream(line) {\n consola.info(`${service.group}/${service.name}: ${line}`);\n },\n logErrorStream(line) {\n consola.warn(`${service.group}/${service.name}: ${line}`);\n },\n });\n}\n\nexport async function executeServicesCommand(\n context: ServicesCommandExecutionContext,\n) {\n const container = new Container({\n prefix: 'authup',\n keys: context.servicesAllowed || context.services,\n });\n\n if (context.config) {\n await container.loadFromFilePath(context.config);\n } else {\n await container.load();\n }\n\n const promises : Promise<ChildProcess>[] = [];\n for (let i = 0; i < context.services.length; i++) {\n const service = deserializeKey(context.services[i]);\n if (!isServiceValid(service)) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not exist.`);\n process.exit(1);\n }\n\n if (\n context.servicesAllowed &&\n context.servicesAllowed.indexOf(`${service.group}/${service.name}`) === -1\n ) {\n consola.error(`${chalk.red(`${service.group}/${service.name}`)}: The service does not support the ${context.command} command.`);\n process.exit(1);\n }\n\n promises.push(executeServiceCommand({\n command: context.command,\n service,\n container,\n }));\n }\n\n const childProcesses = await Promise.all(promises);\n const readLine = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n readLine.on('SIGINT', () => {\n for (let i = 0; i < childProcesses.length; i++) {\n childProcesses[i].kill();\n }\n\n process.exit();\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport { ServiceCommand } from '../services';\n\nexport function buildCleanupCommand(cac: CAC) {\n cac\n .command('cleanup [...services]', 'Cleanup a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = ['server/core'];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.CLEANUP,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { CAC } from 'cac';\nimport { executeServicesCommand } from '../services/execute';\nimport {\n ServiceCommand,\n} from '../services';\n\nexport function buildStartCommand(cac: CAC) {\n cac\n .command('start [...services]', 'Start a service')\n .option('-c, --config [config]', 'Specify a configuration file')\n .action(async (keysInput: string[], ctx: Record<string, any>) => {\n const servicesAllowed = [\n 'client/web',\n 'server/core',\n ];\n\n if (!keysInput || keysInput.length === 0) {\n keysInput = servicesAllowed;\n }\n\n await executeServicesCommand({\n config: ctx.config,\n command: ServiceCommand.START,\n services: keysInput,\n servicesAllowed,\n });\n });\n}\n","#!/usr/bin/env node\n\n/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport cac from 'cac';\n\nimport {\n buildCleanupCommand,\n buildInfoCommand,\n buildStartCommand,\n} from './commands';\n\nconst cli = cac();\n\nbuildInfoCommand(cli);\nbuildStartCommand(cli);\nbuildCleanupCommand(cli);\n\ncli.help();\n\ncli.parse();\n"],"names":["isServiceValid","input","key","deserializeKey","group","name","buildClientWebConfig","container","client","getData","server","apiUrl","publicUrl","makeURLPublicAccessible","authorizeRedirectUrl","buildConfig","data","env","ServicePackageName","ServiceCommand","removeLineBreaks","replace","parseProcessOutputData","lines","split","filter","element","items","i","length","line","trim","parsed","JSON","parse","isObject","hasOwnProperty","message","push","e","stringifyObjectArgs","ob","parts","keys","Object","join","execShellCommand","ctx","args","Promise","resolve","reject","childProcess","exec","command","PATH","process","envFromProcess","on","stderr","setEncoding","logErrorStream","stdout","logDataStream","PACKAGE_DIRECTORY","path","__dirname","findModulePath","module","modulePath","findUpPackagePath","cwd","undefined","extendEnv","match","buildWebAppExecutionContext","START","Error","config","host","HOST","port","PORT","API_URL","PUBLIC_URL","CLIENT_WEB","directory","dirname","outputPath","buildServerCoreConfig","parseConfig","buildServerCoreExecutionContext","SERVER_CORE","CLEANUP","buildInfoCommand","cac","option","action","Container","prefix","loadFromFilePath","load","clientWeb","consola","info","serverCore","rootPath","writableDirectoryPath","executeServiceCommand","context","service","get","paths","EnvKey","CONFIG_FILE","shellExecContext","error","exit","warn","executeServicesCommand","servicesAllowed","services","promises","chalk","red","indexOf","childProcesses","all","readLine","readline","createInterface","stdin","output","kill","buildCleanupCommand","keysInput","buildStartCommand","cli","help"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "authup",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "This is the CLI for the authup
|
|
3
|
+
"version": "1.0.2-beta.14",
|
|
4
|
+
"description": "This is the CLI for the authup ecosystem.",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./package.json": "./package.json",
|
|
7
7
|
".": {
|
|
@@ -43,19 +43,19 @@
|
|
|
43
43
|
},
|
|
44
44
|
"homepage": "https://github.com/authup/authup#readme",
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@authup/client-web": "^1.0.
|
|
47
|
-
"@authup/client-web-config": "^1.0.0-beta.
|
|
48
|
-
"@authup/config": "^1.0.0-beta.
|
|
49
|
-
"@authup/kit": "^1.0.0-beta.
|
|
50
|
-
"@authup/core-kit": "^1.0.0-beta.
|
|
51
|
-
"@authup/server-core": "^1.0.
|
|
46
|
+
"@authup/client-web": "^1.0.0-beta.16",
|
|
47
|
+
"@authup/client-web-config": "^1.0.0-beta.13",
|
|
48
|
+
"@authup/config": "^1.0.0-beta.13",
|
|
49
|
+
"@authup/kit": "^1.0.0-beta.13",
|
|
50
|
+
"@authup/core-kit": "^1.0.0-beta.13",
|
|
51
|
+
"@authup/server-core": "^1.0.0-beta.16",
|
|
52
52
|
"cac": "^6.7.14",
|
|
53
53
|
"chalk": "^4.1.2",
|
|
54
54
|
"consola": "^3.2.3",
|
|
55
55
|
"dycraft": "^1.1.0",
|
|
56
56
|
"resolve-package-path": "^4.0.3",
|
|
57
57
|
"smob": "^1.5.0",
|
|
58
|
-
"zod": "^3.23.
|
|
58
|
+
"zod": "^3.23.8"
|
|
59
59
|
},
|
|
60
60
|
"publishConfig": {
|
|
61
61
|
"access": "public"
|