@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
1 lines • 4.46 kB
Source Map (JSON)
{"version":3,"file":"status.mjs","names":["constants","licenseFormatter","formatter"],"sources":["../../../src/services/license/status.ts"],"sourcesContent":["import constants from \"../../constants/constants.js\";\nimport formatter, { licenseFormatter } from \"../../libs/formatters/index.js\";\nimport { OptionsRepository } from \"../../libs/repositories/index.js\";\nimport type { License } from \"../../types.js\";\nimport { getUnixTimeSeconds } from \"../../utils/helpers/time.js\";\nimport type { ServiceFn } from \"../../utils/services/types.js\";\nimport {\n\tgetLicenseOptionBaseName,\n\tgetLicenseOptionNames,\n} from \"./helpers/option-names.js\";\nimport verifyLicense from \"./verify.js\";\n\nconst licenseStatus: ServiceFn<[], License> = async (context) => {\n\tconst Options = new OptionsRepository(context.db.client, context.config.db);\n\n\tconst tenantKey = context.request.tenantKey ?? null;\n\n\tconst licenseOptionsRes = await Options.selectMultiple({\n\t\tselect: [\"name\", \"value_bool\", \"value_int\", \"value_text\"],\n\t\twhere: [\n\t\t\t{\n\t\t\t\tkey: \"name\",\n\t\t\t\toperator: \"in\",\n\t\t\t\tvalue: getLicenseOptionNames(tenantKey, [\n\t\t\t\t\t\"license_valid\",\n\t\t\t\t\t\"license_last_checked\",\n\t\t\t\t\t\"license_error_message\",\n\t\t\t\t\t\"license_key_display\",\n\t\t\t\t\t\"license_ai_enabled\",\n\t\t\t\t]),\n\t\t\t},\n\t\t],\n\t});\n\tif (licenseOptionsRes.error) return licenseOptionsRes;\n\n\tconst validOpt = licenseOptionsRes.data?.find(\n\t\t(o) => getLicenseOptionBaseName(o.name) === \"license_valid\",\n\t);\n\tconst lastCheckedOpt = licenseOptionsRes.data?.find(\n\t\t(o) => getLicenseOptionBaseName(o.name) === \"license_last_checked\",\n\t);\n\tconst errorMsgOpt = licenseOptionsRes.data?.find(\n\t\t(o) => getLicenseOptionBaseName(o.name) === \"license_error_message\",\n\t);\n\tconst licenseKeyDisplayOpt = licenseOptionsRes.data?.find(\n\t\t(o) => getLicenseOptionBaseName(o.name) === \"license_key_display\",\n\t);\n\tconst aiEnabledOpt = licenseOptionsRes.data?.find(\n\t\t(o) => getLicenseOptionBaseName(o.name) === \"license_ai_enabled\",\n\t);\n\tconst lastChecked = lastCheckedOpt?.value_int ?? null;\n\tconst now = getUnixTimeSeconds();\n\n\tif (\n\t\tlastChecked === null ||\n\t\tnow - lastChecked >= constants.license.statusRecheckIntervalSeconds\n\t) {\n\t\tconst verifyRes = await verifyLicense(context, {\n\t\t\ttenantKey,\n\t\t});\n\t\tif (verifyRes.error) return verifyRes;\n\n\t\treturn {\n\t\t\terror: undefined,\n\t\t\tdata: licenseFormatter.formatSingle({\n\t\t\t\tlicense: {\n\t\t\t\t\tkey: verifyRes.data.key,\n\t\t\t\t\tvalid: verifyRes.data.valid,\n\t\t\t\t\tlastChecked: verifyRes.data.lastChecked,\n\t\t\t\t\terrorMessage: verifyRes.data.errorMessage,\n\t\t\t\t\taiEnabled: verifyRes.data.aiEnabled,\n\t\t\t\t},\n\t\t\t}),\n\t\t};\n\t}\n\n\treturn {\n\t\terror: undefined,\n\t\tdata: licenseFormatter.formatSingle({\n\t\t\tlicense: {\n\t\t\t\tkey: licenseKeyDisplayOpt?.value_text ?? null,\n\t\t\t\tvalid: formatter.formatBoolean(validOpt?.value_bool) ?? false,\n\t\t\t\tlastChecked,\n\t\t\t\terrorMessage: errorMsgOpt?.value_text ?? null,\n\t\t\t\taiEnabled: formatter.formatBoolean(aiEnabledOpt?.value_bool) ?? false,\n\t\t\t},\n\t\t}),\n\t};\n};\n\nexport default licenseStatus;\n"],"mappings":"+XAYA,MAAM,EAAwC,KAAO,IAAY,CAChE,IAAM,EAAU,IAAI,EAAkB,EAAQ,GAAG,OAAQ,EAAQ,OAAO,EAAE,EAEpE,EAAY,EAAQ,QAAQ,WAAa,KAEzC,EAAoB,MAAM,EAAQ,eAAe,CACtD,OAAQ,CAAC,OAAQ,aAAc,YAAa,YAAY,EACxD,MAAO,CACN,CACC,IAAK,OACL,SAAU,KACV,MAAO,EAAsB,EAAW,CACvC,gBACA,uBACA,wBACA,sBACA,oBACD,CAAC,CACF,CACD,CACD,CAAC,EACD,GAAI,EAAkB,MAAO,OAAO,EAEpC,IAAM,EAAW,EAAkB,MAAM,KACvC,GAAM,EAAyB,EAAE,IAAI,IAAM,eAC7C,EACM,EAAiB,EAAkB,MAAM,KAC7C,GAAM,EAAyB,EAAE,IAAI,IAAM,sBAC7C,EACM,EAAc,EAAkB,MAAM,KAC1C,GAAM,EAAyB,EAAE,IAAI,IAAM,uBAC7C,EACM,EAAuB,EAAkB,MAAM,KACnD,GAAM,EAAyB,EAAE,IAAI,IAAM,qBAC7C,EACM,EAAe,EAAkB,MAAM,KAC3C,GAAM,EAAyB,EAAE,IAAI,IAAM,oBAC7C,EACM,EAAc,GAAgB,WAAa,KAC3C,EAAM,EAAmB,EAE/B,GACC,IAAgB,MAChB,EAAM,GAAeA,EAAU,QAAQ,6BACtC,CACD,IAAM,EAAY,MAAM,EAAc,EAAS,CAC9C,WACD,CAAC,EAGD,OAFI,EAAU,MAAc,EAErB,CACN,MAAO,IAAA,GACP,KAAMC,EAAiB,aAAa,CACnC,QAAS,CACR,IAAK,EAAU,KAAK,IACpB,MAAO,EAAU,KAAK,MACtB,YAAa,EAAU,KAAK,YAC5B,aAAc,EAAU,KAAK,aAC7B,UAAW,EAAU,KAAK,SAC3B,CACD,CAAC,CACF,CACD,CAEA,MAAO,CACN,MAAO,IAAA,GACP,KAAMA,EAAiB,aAAa,CACnC,QAAS,CACR,IAAK,GAAsB,YAAc,KACzC,MAAOC,EAAU,cAAc,GAAU,UAAU,GAAK,GACxD,cACA,aAAc,GAAa,YAAc,KACzC,UAAWA,EAAU,cAAc,GAAc,UAAU,GAAK,EACjE,CACD,CAAC,CACF,CACD"}