everything-dev 1.51.7 → 1.52.0
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/api-contract.cjs +61 -16
- package/dist/api-contract.cjs.map +1 -1
- package/dist/api-contract.mjs +60 -17
- package/dist/api-contract.mjs.map +1 -1
- package/dist/app.cjs +1 -1
- package/dist/app.cjs.map +1 -1
- package/dist/app.mjs +1 -1
- package/dist/app.mjs.map +1 -1
- package/dist/cli/init.cjs +76 -52
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.d.cts +15 -7
- package/dist/cli/init.d.cts.map +1 -1
- package/dist/cli/init.d.mts +15 -7
- package/dist/cli/init.d.mts.map +1 -1
- package/dist/cli/init.mjs +70 -47
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli/sync.cjs +34 -5
- package/dist/cli/sync.cjs.map +1 -1
- package/dist/cli/sync.mjs +35 -6
- package/dist/cli/sync.mjs.map +1 -1
- package/dist/cli/upgrade.cjs +151 -93
- package/dist/cli/upgrade.cjs.map +1 -1
- package/dist/cli/upgrade.mjs +138 -80
- package/dist/cli/upgrade.mjs.map +1 -1
- package/dist/cli/utils/helpers.cjs +25 -0
- package/dist/cli/utils/helpers.cjs.map +1 -0
- package/dist/cli/utils/helpers.mjs +23 -0
- package/dist/cli/utils/helpers.mjs.map +1 -0
- package/dist/cli.cjs +84 -72
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +84 -72
- package/dist/cli.mjs.map +1 -1
- package/dist/code-artifacts.cjs +1 -1
- package/dist/code-artifacts.mjs +1 -1
- package/dist/config.cjs +44 -4
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +1 -1
- package/dist/config.d.cts.map +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config.d.mts.map +1 -1
- package/dist/config.mjs +44 -4
- package/dist/config.mjs.map +1 -1
- package/dist/contract.cjs +9 -4
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +34 -24
- package/dist/contract.d.cts.map +1 -1
- package/dist/contract.d.mts +34 -24
- package/dist/contract.d.mts.map +1 -1
- package/dist/contract.meta.cjs +2 -1
- package/dist/contract.meta.cjs.map +1 -1
- package/dist/contract.meta.d.cts +3 -0
- package/dist/contract.meta.d.mts +3 -0
- package/dist/contract.meta.mjs +2 -1
- package/dist/contract.meta.mjs.map +1 -1
- package/dist/contract.mjs +9 -4
- package/dist/contract.mjs.map +1 -1
- package/dist/dag.cjs +176 -0
- package/dist/dag.cjs.map +1 -0
- package/dist/dag.d.cts +24 -0
- package/dist/dag.d.cts.map +1 -0
- package/dist/dag.d.mts +24 -0
- package/dist/dag.d.mts.map +1 -0
- package/dist/dag.mjs +167 -0
- package/dist/dag.mjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/infra/planner.cjs +1 -1
- package/dist/infra/planner.mjs +1 -1
- package/dist/near-cli.cjs +1 -1
- package/dist/near-cli.mjs +1 -1
- package/dist/plugin.cjs +27 -18
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +57 -11
- package/dist/plugin.d.mts +57 -11
- package/dist/plugin.mjs +28 -19
- package/dist/plugin.mjs.map +1 -1
- package/dist/types.cjs +41 -6
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +118 -3
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +118 -3
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +40 -7
- package/dist/types.mjs.map +1 -1
- package/package.json +6 -1
package/dist/contract.mjs
CHANGED
|
@@ -221,7 +221,8 @@ const InitResultSchema = z.object({
|
|
|
221
221
|
});
|
|
222
222
|
const SyncOptionsSchema = z.object({
|
|
223
223
|
dryRun: z.boolean().default(false),
|
|
224
|
-
noInstall: z.boolean().default(false)
|
|
224
|
+
noInstall: z.boolean().default(false),
|
|
225
|
+
json: z.boolean().default(false)
|
|
225
226
|
});
|
|
226
227
|
const SyncResultSchema = z.object({
|
|
227
228
|
status: z.enum([
|
|
@@ -232,12 +233,16 @@ const SyncResultSchema = z.object({
|
|
|
232
233
|
updated: z.array(z.string()),
|
|
233
234
|
skipped: z.array(z.string()),
|
|
234
235
|
added: z.array(z.string()),
|
|
236
|
+
conflicted: z.array(z.string()).default([]),
|
|
237
|
+
backupDir: z.string().optional(),
|
|
235
238
|
error: z.string().optional()
|
|
236
239
|
});
|
|
237
240
|
const UpgradeOptionsSchema = z.object({
|
|
238
241
|
dryRun: z.boolean().default(false),
|
|
239
242
|
noInstall: z.boolean().default(false),
|
|
240
|
-
noSync: z.boolean().default(false)
|
|
243
|
+
noSync: z.boolean().default(false),
|
|
244
|
+
json: z.boolean().default(false),
|
|
245
|
+
migrationsOnly: z.boolean().default(false)
|
|
241
246
|
});
|
|
242
247
|
const UpgradeResultSchema = z.object({
|
|
243
248
|
status: z.enum([
|
|
@@ -281,7 +286,8 @@ const StatusResultSchema = z.object({
|
|
|
281
286
|
});
|
|
282
287
|
const TypesGenOptionsSchema = z.object({
|
|
283
288
|
env: z.enum(["development", "production"]).optional(),
|
|
284
|
-
dryRun: z.boolean().default(false)
|
|
289
|
+
dryRun: z.boolean().default(false),
|
|
290
|
+
remotePlugins: z.array(z.string()).optional()
|
|
285
291
|
});
|
|
286
292
|
const TypesGenResultSchema = z.object({
|
|
287
293
|
status: z.enum(["success", "error"]),
|
|
@@ -289,7 +295,6 @@ const TypesGenResultSchema = z.object({
|
|
|
289
295
|
fetched: z.array(z.string()),
|
|
290
296
|
skipped: z.array(z.string()),
|
|
291
297
|
failed: z.array(z.string()),
|
|
292
|
-
source: z.enum(["local", "remote"]).optional(),
|
|
293
298
|
error: z.string().optional()
|
|
294
299
|
});
|
|
295
300
|
const DbStudioOptionsSchema = z.object({ plugin: z.string().default("api") });
|
package/dist/contract.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.mjs","names":[],"sources":["../src/contract.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { oc } from \"./sdk\";\nimport { BosConfigInputSchema, BosConfigSchema, SourceModeSchema } from \"./types\";\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n remotePlugins: z.array(z.string()).optional(),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n apiPort: z.number().optional(),\n uiPort: z.number().optional(),\n authPort: z.number().optional(),\n pluginPortStart: z.number().optional(),\n interactive: z.boolean().optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n timings: z.array(PhaseTimingSchema).optional(),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n force: z.boolean().default(false),\n deploy: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n deployed: z.boolean().optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n script: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const WorkspaceDeployResultSchema = z.object({\n key: z.string(),\n kind: z.enum([\"app\", \"plugin\"]),\n success: z.boolean(),\n url: z.string().optional(),\n error: z.string().optional(),\n warnings: z.array(z.string()).optional(),\n durationMs: z.number().optional(),\n retried: z.boolean().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n deploy: z.boolean().default(false),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z.string().default(\"all\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const DeployOptionsSchema = z.object({\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n build: z.boolean().default(true),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z.string().default(\"all\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n service: z.string().optional(),\n});\n\nexport const DeployResultSchema = z.object({\n status: z.enum([\"deployed\", \"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n redeployed: z.boolean(),\n service: z.string().optional(),\n error: z.string().optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nfunction parseNearAmount(value: string): number {\n const cleaned = value.replace(/[\\s_,]/g, \"\");\n const match = cleaned.match(/^(\\d+(?:\\.\\d+)?)near$/i);\n if (!match) return NaN;\n return Number.parseFloat(match[1]);\n}\n\nconst MIN_PUBLISH_ALLOWANCE_NEAR = 0.3;\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z\n .string()\n .default(\"1NEAR\")\n .refine(\n (val) => {\n const amount = parseNearAmount(val);\n return !Number.isNaN(amount) && amount >= MIN_PUBLISH_ALLOWANCE_NEAR;\n },\n {\n message: `Allowance must be at least ${MIN_PUBLISH_ALLOWANCE_NEAR} NEAR to cover the transaction cost`,\n },\n ),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n isLinked: z.boolean().optional(),\n specifier: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n source: z.enum([\"local\", \"remote\"]).optional(),\n error: z.string().optional(),\n});\n\nexport const DbStudioOptionsSchema = z.object({\n plugin: z.string().default(\"api\"),\n});\n\nexport const DbStudioResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n source: z.enum([\"local\", \"remote\"]),\n section: z.string(),\n databaseSecret: z.string().optional(),\n databaseUrl: z.string().optional(),\n workspaceDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbDoctorOptionsSchema = z.object({\n plugin: z.string(),\n});\n\nexport const DbDoctorResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n slug: z.string(),\n journalTable: z.string(),\n journalSchema: z.string(),\n diagnosis: z.string(),\n localMigrationCount: z.number(),\n appliedHashCount: z.number(),\n expectedTables: z.array(z.string()),\n missingTables: z.array(z.string()),\n workspaceDir: z.string().optional(),\n dbSecret: z.string().optional(),\n dbUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbRepairOptionsSchema = z.object({\n plugin: z.string(),\n mode: z.enum([\"history-reset\", \"recreate\"]).default(\"history-reset\"),\n yes: z.boolean().optional(),\n});\n\nexport const DbRepairResultSchema = z.object({\n status: z.enum([\"repaired\", \"refused\", \"error\"]),\n message: z.string(),\n diagnosis: z.any(),\n error: z.string().optional(),\n});\n\nexport const ProcessRoleSchema = z.enum([\"standalone\", \"workspace-parent\", \"workspace-child\"]);\n\nexport const PidEntrySchema = z.object({\n pid: z.number(),\n configDir: z.string(),\n parentPid: z.number().optional(),\n role: ProcessRoleSchema,\n ports: z\n .object({\n host: z.number().optional(),\n api: z.number().optional(),\n ui: z.number().optional(),\n auth: z.number().optional(),\n })\n .default({}),\n budget: z\n .object({\n min: z.number(),\n max: z.number(),\n })\n .optional(),\n startedAt: z.number(),\n description: z.string(),\n});\n\nexport const PsResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n entries: z.array(PidEntrySchema),\n error: z.string().optional(),\n});\n\nexport const KillOptionsSchema = z.object({\n configDir: z.string().optional(),\n signal: z.enum([\"SIGTERM\", \"SIGKILL\"]).default(\"SIGTERM\"),\n all: z.boolean().default(false),\n});\n\nexport const KillResultSchema = z.object({\n status: z.enum([\"killed\", \"error\"]),\n killed: z.array(z.object({ pid: z.number(), configDir: z.string() })),\n skipped: z.array(z.object({ pid: z.number(), reason: z.string() })),\n error: z.string().optional(),\n});\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n deploy: oc\n .route({ method: \"POST\", path: \"/deploy\" })\n .input(DeployOptionsSchema)\n .output(DeployResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n dbStudio: oc\n .route({ method: \"POST\", path: \"/db/studio\" })\n .input(DbStudioOptionsSchema)\n .output(DbStudioResultSchema),\n dbDoctor: oc\n .route({ method: \"POST\", path: \"/db/doctor\" })\n .input(DbDoctorOptionsSchema)\n .output(DbDoctorResultSchema),\n dbRepair: oc\n .route({ method: \"POST\", path: \"/db/repair\" })\n .input(DbRepairOptionsSchema)\n .output(DbRepairResultSchema),\n ps: oc.route({ method: \"GET\", path: \"/ps\" }).output(PsResultSchema),\n kill: oc\n .route({ method: \"POST\", path: \"/kill\" })\n .input(KillOptionsSchema)\n .output(KillResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type WorkspaceDeployResult = z.infer<typeof WorkspaceDeployResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type PublishResult = z.infer<typeof PublishResultSchema>;\nexport type DeployOptions = z.infer<typeof DeployOptionsSchema>;\nexport type DeployResult = z.infer<typeof DeployResultSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type DbStudioOptions = z.infer<typeof DbStudioOptionsSchema>;\nexport type DbStudioResult = z.infer<typeof DbStudioResultSchema>;\nexport type DbDoctorOptions = z.infer<typeof DbDoctorOptionsSchema>;\nexport type DbDoctorResult = z.infer<typeof DbDoctorResultSchema>;\nexport type DbRepairOptions = z.infer<typeof DbRepairOptionsSchema>;\nexport type DbRepairResult = z.infer<typeof DbRepairResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\nexport type ProcessRole = z.infer<typeof ProcessRoleSchema>;\nexport type PidEntry = z.infer<typeof PidEntrySchema>;\nexport type PsResult = z.infer<typeof PsResultSchema>;\nexport type KillOptions = z.infer<typeof KillOptionsSchema>;\nexport type KillResult = z.infer<typeof KillResultSchema>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.mjs","names":[],"sources":["../src/contract.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { oc } from \"./sdk\";\nimport { BosConfigInputSchema, BosConfigSchema, SourceModeSchema } from \"./types\";\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n remotePlugins: z.array(z.string()).optional(),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n apiPort: z.number().optional(),\n uiPort: z.number().optional(),\n authPort: z.number().optional(),\n pluginPortStart: z.number().optional(),\n interactive: z.boolean().optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n timings: z.array(PhaseTimingSchema).optional(),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n force: z.boolean().default(false),\n deploy: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n deployed: z.boolean().optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n script: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const WorkspaceDeployResultSchema = z.object({\n key: z.string(),\n kind: z.enum([\"app\", \"plugin\"]),\n success: z.boolean(),\n url: z.string().optional(),\n error: z.string().optional(),\n warnings: z.array(z.string()).optional(),\n durationMs: z.number().optional(),\n retried: z.boolean().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n deploy: z.boolean().default(false),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z.string().default(\"all\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const DeployOptionsSchema = z.object({\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n build: z.boolean().default(true),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z.string().default(\"all\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n service: z.string().optional(),\n});\n\nexport const DeployResultSchema = z.object({\n status: z.enum([\"deployed\", \"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n redeployed: z.boolean(),\n service: z.string().optional(),\n error: z.string().optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nfunction parseNearAmount(value: string): number {\n const cleaned = value.replace(/[\\s_,]/g, \"\");\n const match = cleaned.match(/^(\\d+(?:\\.\\d+)?)near$/i);\n if (!match) return NaN;\n return Number.parseFloat(match[1]);\n}\n\nconst MIN_PUBLISH_ALLOWANCE_NEAR = 0.3;\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z\n .string()\n .default(\"1NEAR\")\n .refine(\n (val) => {\n const amount = parseNearAmount(val);\n return !Number.isNaN(amount) && amount >= MIN_PUBLISH_ALLOWANCE_NEAR;\n },\n {\n message: `Allowance must be at least ${MIN_PUBLISH_ALLOWANCE_NEAR} NEAR to cover the transaction cost`,\n },\n ),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n json: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n conflicted: z.array(z.string()).default([]),\n backupDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n json: z.boolean().default(false),\n migrationsOnly: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n isLinked: z.boolean().optional(),\n specifier: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n remotePlugins: z.array(z.string()).optional(),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const DbStudioOptionsSchema = z.object({\n plugin: z.string().default(\"api\"),\n});\n\nexport const DbStudioResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n source: z.enum([\"local\", \"remote\"]),\n section: z.string(),\n databaseSecret: z.string().optional(),\n databaseUrl: z.string().optional(),\n workspaceDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbDoctorOptionsSchema = z.object({\n plugin: z.string(),\n});\n\nexport const DbDoctorResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n slug: z.string(),\n journalTable: z.string(),\n journalSchema: z.string(),\n diagnosis: z.string(),\n localMigrationCount: z.number(),\n appliedHashCount: z.number(),\n expectedTables: z.array(z.string()),\n missingTables: z.array(z.string()),\n workspaceDir: z.string().optional(),\n dbSecret: z.string().optional(),\n dbUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbRepairOptionsSchema = z.object({\n plugin: z.string(),\n mode: z.enum([\"history-reset\", \"recreate\"]).default(\"history-reset\"),\n yes: z.boolean().optional(),\n});\n\nexport const DbRepairResultSchema = z.object({\n status: z.enum([\"repaired\", \"refused\", \"error\"]),\n message: z.string(),\n diagnosis: z.any(),\n error: z.string().optional(),\n});\n\nexport const ProcessRoleSchema = z.enum([\"standalone\", \"workspace-parent\", \"workspace-child\"]);\n\nexport const PidEntrySchema = z.object({\n pid: z.number(),\n configDir: z.string(),\n parentPid: z.number().optional(),\n role: ProcessRoleSchema,\n ports: z\n .object({\n host: z.number().optional(),\n api: z.number().optional(),\n ui: z.number().optional(),\n auth: z.number().optional(),\n })\n .default({}),\n budget: z\n .object({\n min: z.number(),\n max: z.number(),\n })\n .optional(),\n startedAt: z.number(),\n description: z.string(),\n});\n\nexport const PsResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n entries: z.array(PidEntrySchema),\n error: z.string().optional(),\n});\n\nexport const KillOptionsSchema = z.object({\n configDir: z.string().optional(),\n signal: z.enum([\"SIGTERM\", \"SIGKILL\"]).default(\"SIGTERM\"),\n all: z.boolean().default(false),\n});\n\nexport const KillResultSchema = z.object({\n status: z.enum([\"killed\", \"error\"]),\n killed: z.array(z.object({ pid: z.number(), configDir: z.string() })),\n skipped: z.array(z.object({ pid: z.number(), reason: z.string() })),\n error: z.string().optional(),\n});\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n deploy: oc\n .route({ method: \"POST\", path: \"/deploy\" })\n .input(DeployOptionsSchema)\n .output(DeployResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n dbStudio: oc\n .route({ method: \"POST\", path: \"/db/studio\" })\n .input(DbStudioOptionsSchema)\n .output(DbStudioResultSchema),\n dbDoctor: oc\n .route({ method: \"POST\", path: \"/db/doctor\" })\n .input(DbDoctorOptionsSchema)\n .output(DbDoctorResultSchema),\n dbRepair: oc\n .route({ method: \"POST\", path: \"/db/repair\" })\n .input(DbRepairOptionsSchema)\n .output(DbRepairResultSchema),\n ps: oc.route({ method: \"GET\", path: \"/ps\" }).output(PsResultSchema),\n kill: oc\n .route({ method: \"POST\", path: \"/kill\" })\n .input(KillOptionsSchema)\n .output(KillResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type WorkspaceDeployResult = z.infer<typeof WorkspaceDeployResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type PublishResult = z.infer<typeof PublishResultSchema>;\nexport type DeployOptions = z.infer<typeof DeployOptionsSchema>;\nexport type DeployResult = z.infer<typeof DeployResultSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type DbStudioOptions = z.infer<typeof DbStudioOptionsSchema>;\nexport type DbStudioResult = z.infer<typeof DbStudioResultSchema>;\nexport type DbDoctorOptions = z.infer<typeof DbDoctorOptionsSchema>;\nexport type DbDoctorResult = z.infer<typeof DbDoctorResultSchema>;\nexport type DbRepairOptions = z.infer<typeof DbRepairOptionsSchema>;\nexport type DbRepairResult = z.infer<typeof DbRepairResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\nexport type ProcessRole = z.infer<typeof ProcessRoleSchema>;\nexport type PidEntry = z.infer<typeof PidEntrySchema>;\nexport type PsResult = z.infer<typeof PsResultSchema>;\nexport type KillOptions = z.infer<typeof KillOptionsSchema>;\nexport type KillResult = z.infer<typeof KillResultSchema>;\n"],"mappings":"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"}
|
package/dist/dag.cjs
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/dag.ts
|
|
4
|
+
function normalizeToNodes(config) {
|
|
5
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
6
|
+
if (config.api?.url) nodes.set("api", {
|
|
7
|
+
key: "api",
|
|
8
|
+
kind: "api",
|
|
9
|
+
name: config.api.name,
|
|
10
|
+
url: config.api.url,
|
|
11
|
+
entry: config.api.entry,
|
|
12
|
+
source: config.api.source,
|
|
13
|
+
localPath: config.api.localPath,
|
|
14
|
+
port: config.api.port,
|
|
15
|
+
proxy: config.api.proxy,
|
|
16
|
+
variables: config.api.variables,
|
|
17
|
+
secrets: config.api.secrets,
|
|
18
|
+
integrity: config.api.integrity,
|
|
19
|
+
shared: config.api.shared,
|
|
20
|
+
dependsOn: config.api.dependsOn,
|
|
21
|
+
sourceOrigin: "config",
|
|
22
|
+
singletonKey: `api:${config.api.url}`
|
|
23
|
+
});
|
|
24
|
+
if (config.auth?.url) nodes.set("auth", {
|
|
25
|
+
key: "auth",
|
|
26
|
+
kind: "auth",
|
|
27
|
+
name: config.auth.name,
|
|
28
|
+
url: config.auth.url,
|
|
29
|
+
entry: config.auth.entry,
|
|
30
|
+
source: config.auth.source,
|
|
31
|
+
extendsRef: config.auth.extendsRef,
|
|
32
|
+
localPath: config.auth.localPath,
|
|
33
|
+
port: config.auth.port,
|
|
34
|
+
proxy: config.auth.proxy,
|
|
35
|
+
variables: config.auth.variables,
|
|
36
|
+
secrets: config.auth.secrets,
|
|
37
|
+
integrity: config.auth.integrity,
|
|
38
|
+
shared: config.auth.shared,
|
|
39
|
+
dependsOn: config.auth.dependsOn,
|
|
40
|
+
sourceOrigin: "config",
|
|
41
|
+
singletonKey: `auth:${config.auth.url}`
|
|
42
|
+
});
|
|
43
|
+
if (config.ui?.url) nodes.set("ui", {
|
|
44
|
+
key: "ui",
|
|
45
|
+
kind: "ui",
|
|
46
|
+
name: config.ui.name,
|
|
47
|
+
url: config.ui.url,
|
|
48
|
+
entry: config.ui.entry,
|
|
49
|
+
source: config.ui.source,
|
|
50
|
+
localPath: config.ui.localPath,
|
|
51
|
+
port: config.ui.port,
|
|
52
|
+
integrity: config.ui.integrity,
|
|
53
|
+
dependsOn: config.ui.dependsOn,
|
|
54
|
+
sourceOrigin: "config",
|
|
55
|
+
singletonKey: `ui:${config.ui.url}`
|
|
56
|
+
});
|
|
57
|
+
for (const [key, plugin] of Object.entries(config.plugins ?? {})) {
|
|
58
|
+
if (!plugin.url) continue;
|
|
59
|
+
nodes.set(key, {
|
|
60
|
+
key,
|
|
61
|
+
kind: "plugin",
|
|
62
|
+
name: plugin.name,
|
|
63
|
+
url: plugin.url,
|
|
64
|
+
entry: plugin.entry,
|
|
65
|
+
source: plugin.source,
|
|
66
|
+
extendsRef: plugin.extendsRef,
|
|
67
|
+
localPath: plugin.localPath,
|
|
68
|
+
port: plugin.port,
|
|
69
|
+
proxy: plugin.proxy,
|
|
70
|
+
variables: plugin.variables,
|
|
71
|
+
secrets: plugin.secrets,
|
|
72
|
+
integrity: plugin.integrity,
|
|
73
|
+
shared: plugin.shared,
|
|
74
|
+
ui: plugin.ui,
|
|
75
|
+
routes: plugin.routes,
|
|
76
|
+
dependsOn: plugin.dependsOn,
|
|
77
|
+
sourceOrigin: "config",
|
|
78
|
+
singletonKey: `plugin:${key}:${plugin.url}`
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return nodes;
|
|
82
|
+
}
|
|
83
|
+
function manifestPluginsToNodes(plugins) {
|
|
84
|
+
if (!plugins?.length) return [];
|
|
85
|
+
return plugins.map((p) => ({
|
|
86
|
+
key: p.key,
|
|
87
|
+
kind: "plugin",
|
|
88
|
+
name: p.name,
|
|
89
|
+
url: p.url,
|
|
90
|
+
entry: `${p.url}/mf-manifest.json`,
|
|
91
|
+
source: "remote",
|
|
92
|
+
dependsOn: p.dependsOn,
|
|
93
|
+
secrets: p.secrets,
|
|
94
|
+
variables: p.variables,
|
|
95
|
+
sourceOrigin: "manifest",
|
|
96
|
+
singletonKey: `plugin:${p.key}:${p.url}`
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
function buildDependencyDAG(config) {
|
|
100
|
+
const nodes = config.nodes && Object.keys(config.nodes).length > 0 ? new Map(Object.entries(config.nodes)) : normalizeToNodes(config);
|
|
101
|
+
return {
|
|
102
|
+
nodes,
|
|
103
|
+
sorted: topologicalSort(nodes)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function getImplicitApiDependencies(nodes) {
|
|
107
|
+
return [...nodes.values()].filter((n) => n.kind !== "api" && n.kind !== "ui").map((n) => n.key);
|
|
108
|
+
}
|
|
109
|
+
function topologicalSort(nodes) {
|
|
110
|
+
const inDegree = /* @__PURE__ */ new Map();
|
|
111
|
+
const adjacency = /* @__PURE__ */ new Map();
|
|
112
|
+
for (const key of nodes.keys()) {
|
|
113
|
+
inDegree.set(key, 0);
|
|
114
|
+
adjacency.set(key, /* @__PURE__ */ new Set());
|
|
115
|
+
}
|
|
116
|
+
for (const [key, node] of nodes) for (const dep of node.dependsOn ?? []) if (nodes.has(dep)) {
|
|
117
|
+
adjacency.get(dep).add(key);
|
|
118
|
+
inDegree.set(key, (inDegree.get(key) ?? 0) + 1);
|
|
119
|
+
}
|
|
120
|
+
const apiNode = nodes.get("api");
|
|
121
|
+
if (apiNode && !apiNode.dependsOn?.length) {
|
|
122
|
+
for (const depKey of getImplicitApiDependencies(nodes)) if (!adjacency.get(depKey).has("api")) {
|
|
123
|
+
adjacency.get(depKey).add("api");
|
|
124
|
+
inDegree.set("api", (inDegree.get("api") ?? 0) + 1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const queue = [];
|
|
128
|
+
for (const [key, degree] of inDegree) if (degree === 0) queue.push(key);
|
|
129
|
+
queue.sort();
|
|
130
|
+
const result = [];
|
|
131
|
+
while (queue.length > 0) {
|
|
132
|
+
const current = queue.shift();
|
|
133
|
+
result.push(current);
|
|
134
|
+
const neighbors = adjacency.get(current);
|
|
135
|
+
if (neighbors) for (const neighbor of neighbors) {
|
|
136
|
+
const newDegree = (inDegree.get(neighbor) ?? 0) - 1;
|
|
137
|
+
inDegree.set(neighbor, newDegree);
|
|
138
|
+
if (newDegree === 0) {
|
|
139
|
+
const insertPos = queue.findIndex((k) => k > neighbor);
|
|
140
|
+
if (insertPos === -1) queue.push(neighbor);
|
|
141
|
+
else queue.splice(insertPos, 0, neighbor);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (result.length !== nodes.size) {
|
|
146
|
+
const cyclic = [...nodes.keys()].filter((k) => !result.includes(k));
|
|
147
|
+
throw new Error(`Circular dependency detected among: ${cyclic.join(" -> ")}. Check dependsOn declarations in bos.config.json.`);
|
|
148
|
+
}
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
function mergeManifestNodes(configNodes, manifestNodes) {
|
|
152
|
+
const merged = new Map(configNodes);
|
|
153
|
+
for (const node of manifestNodes) {
|
|
154
|
+
if (merged.has(node.key) && merged.get(node.key).sourceOrigin === "config") continue;
|
|
155
|
+
merged.set(node.key, node);
|
|
156
|
+
}
|
|
157
|
+
return merged;
|
|
158
|
+
}
|
|
159
|
+
function getDependenciesForNode(node, allNodes) {
|
|
160
|
+
if (node.kind === "api" && !node.dependsOn?.length) return getImplicitApiDependencies(allNodes).map((k) => allNodes.get(k)).filter(Boolean);
|
|
161
|
+
return (node.dependsOn ?? []).map((k) => allNodes.get(k)).filter(Boolean);
|
|
162
|
+
}
|
|
163
|
+
function getSingletonKey(node) {
|
|
164
|
+
return node.singletonKey ?? `${node.kind}:${node.key}:${node.url}`;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
//#endregion
|
|
168
|
+
exports.buildDependencyDAG = buildDependencyDAG;
|
|
169
|
+
exports.getDependenciesForNode = getDependenciesForNode;
|
|
170
|
+
exports.getImplicitApiDependencies = getImplicitApiDependencies;
|
|
171
|
+
exports.getSingletonKey = getSingletonKey;
|
|
172
|
+
exports.manifestPluginsToNodes = manifestPluginsToNodes;
|
|
173
|
+
exports.mergeManifestNodes = mergeManifestNodes;
|
|
174
|
+
exports.normalizeToNodes = normalizeToNodes;
|
|
175
|
+
exports.topologicalSort = topologicalSort;
|
|
176
|
+
//# sourceMappingURL=dag.cjs.map
|
package/dist/dag.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag.cjs","names":[],"sources":["../src/dag.ts"],"sourcesContent":["import type { JsonObject, RuntimeConfig, RuntimeDependencyNode } from \"./types\";\n\nexport interface DependencyDAG {\n nodes: Map<string, RuntimeDependencyNode>;\n sorted: string[];\n}\n\nexport function normalizeToNodes(config: RuntimeConfig): Map<string, RuntimeDependencyNode> {\n const nodes = new Map<string, RuntimeDependencyNode>();\n\n if (config.api?.url) {\n nodes.set(\"api\", {\n key: \"api\",\n kind: \"api\",\n name: config.api.name,\n url: config.api.url,\n entry: config.api.entry,\n source: config.api.source,\n localPath: config.api.localPath,\n port: config.api.port,\n proxy: config.api.proxy,\n variables: config.api.variables,\n secrets: config.api.secrets,\n integrity: config.api.integrity,\n shared: config.api.shared,\n dependsOn: config.api.dependsOn,\n sourceOrigin: \"config\",\n singletonKey: `api:${config.api.url}`,\n });\n }\n\n if (config.auth?.url) {\n nodes.set(\"auth\", {\n key: \"auth\",\n kind: \"auth\",\n name: config.auth.name,\n url: config.auth.url,\n entry: config.auth.entry,\n source: config.auth.source,\n extendsRef: config.auth.extendsRef,\n localPath: config.auth.localPath,\n port: config.auth.port,\n proxy: config.auth.proxy,\n variables: config.auth.variables,\n secrets: config.auth.secrets,\n integrity: config.auth.integrity,\n shared: config.auth.shared,\n dependsOn: config.auth.dependsOn,\n sourceOrigin: \"config\",\n singletonKey: `auth:${config.auth.url}`,\n });\n }\n\n if (config.ui?.url) {\n nodes.set(\"ui\", {\n key: \"ui\",\n kind: \"ui\",\n name: config.ui.name,\n url: config.ui.url,\n entry: config.ui.entry,\n source: config.ui.source,\n localPath: config.ui.localPath,\n port: config.ui.port,\n integrity: config.ui.integrity,\n dependsOn: config.ui.dependsOn,\n sourceOrigin: \"config\",\n singletonKey: `ui:${config.ui.url}`,\n });\n }\n\n for (const [key, plugin] of Object.entries(config.plugins ?? {})) {\n if (!plugin.url) continue;\n nodes.set(key, {\n key,\n kind: \"plugin\",\n name: plugin.name,\n url: plugin.url,\n entry: plugin.entry,\n source: plugin.source,\n extendsRef: plugin.extendsRef,\n localPath: plugin.localPath,\n port: plugin.port,\n proxy: plugin.proxy,\n variables: plugin.variables,\n secrets: plugin.secrets,\n integrity: plugin.integrity,\n shared: plugin.shared,\n ui: plugin.ui,\n routes: plugin.routes,\n dependsOn: plugin.dependsOn,\n sourceOrigin: \"config\",\n singletonKey: `plugin:${key}:${plugin.url}`,\n });\n }\n\n return nodes;\n}\n\nexport function manifestPluginsToNodes(\n plugins: Array<{\n key: string;\n name: string;\n url: string;\n dependsOn?: string[];\n secrets?: string[];\n variables?: JsonObject;\n }>,\n): RuntimeDependencyNode[] {\n if (!plugins?.length) return [];\n return plugins.map((p) => ({\n key: p.key,\n kind: \"plugin\" as const,\n name: p.name,\n url: p.url,\n entry: `${p.url}/mf-manifest.json`,\n source: \"remote\" as const,\n dependsOn: p.dependsOn,\n secrets: p.secrets,\n variables: p.variables,\n sourceOrigin: \"manifest\" as const,\n singletonKey: `plugin:${p.key}:${p.url}`,\n }));\n}\n\nexport function buildDependencyDAG(config: RuntimeConfig): DependencyDAG {\n const nodes =\n config.nodes && Object.keys(config.nodes).length > 0\n ? new Map(Object.entries(config.nodes))\n : normalizeToNodes(config);\n const sorted = topologicalSort(nodes);\n return { nodes, sorted };\n}\n\nexport function getImplicitApiDependencies(nodes: Map<string, RuntimeDependencyNode>): string[] {\n return [...nodes.values()].filter((n) => n.kind !== \"api\" && n.kind !== \"ui\").map((n) => n.key);\n}\n\nexport function topologicalSort(nodes: Map<string, RuntimeDependencyNode>): string[] {\n const inDegree = new Map<string, number>();\n const adjacency = new Map<string, Set<string>>();\n\n for (const key of nodes.keys()) {\n inDegree.set(key, 0);\n adjacency.set(key, new Set());\n }\n\n for (const [key, node] of nodes) {\n for (const dep of node.dependsOn ?? []) {\n if (nodes.has(dep)) {\n adjacency.get(dep)!.add(key);\n inDegree.set(key, (inDegree.get(key) ?? 0) + 1);\n }\n }\n }\n\n const apiNode = nodes.get(\"api\");\n if (apiNode && !apiNode.dependsOn?.length) {\n for (const depKey of getImplicitApiDependencies(nodes)) {\n if (!adjacency.get(depKey)!.has(\"api\")) {\n adjacency.get(depKey)!.add(\"api\");\n inDegree.set(\"api\", (inDegree.get(\"api\") ?? 0) + 1);\n }\n }\n }\n\n const queue: string[] = [];\n for (const [key, degree] of inDegree) {\n if (degree === 0) queue.push(key);\n }\n queue.sort();\n\n const result: string[] = [];\n while (queue.length > 0) {\n const current = queue.shift()!;\n result.push(current);\n const neighbors = adjacency.get(current);\n if (neighbors) {\n for (const neighbor of neighbors) {\n const newDegree = (inDegree.get(neighbor) ?? 0) - 1;\n inDegree.set(neighbor, newDegree);\n if (newDegree === 0) {\n const insertPos = queue.findIndex((k) => k > neighbor);\n if (insertPos === -1) queue.push(neighbor);\n else queue.splice(insertPos, 0, neighbor);\n }\n }\n }\n }\n\n if (result.length !== nodes.size) {\n const cyclic = [...nodes.keys()].filter((k) => !result.includes(k));\n throw new Error(\n `Circular dependency detected among: ${cyclic.join(\" -> \")}. Check dependsOn declarations in bos.config.json.`,\n );\n }\n\n return result;\n}\n\nexport function mergeManifestNodes(\n configNodes: Map<string, RuntimeDependencyNode>,\n manifestNodes: RuntimeDependencyNode[],\n): Map<string, RuntimeDependencyNode> {\n const merged = new Map(configNodes);\n\n for (const node of manifestNodes) {\n if (merged.has(node.key) && merged.get(node.key)!.sourceOrigin === \"config\") {\n continue;\n }\n merged.set(node.key, node);\n }\n\n return merged;\n}\n\nexport function getDependenciesForNode(\n node: RuntimeDependencyNode,\n allNodes: Map<string, RuntimeDependencyNode>,\n): RuntimeDependencyNode[] {\n if (node.kind === \"api\" && !node.dependsOn?.length) {\n return getImplicitApiDependencies(allNodes)\n .map((k) => allNodes.get(k))\n .filter(Boolean) as RuntimeDependencyNode[];\n }\n\n const explicitDeps = (node.dependsOn ?? [])\n .map((k) => allNodes.get(k))\n .filter(Boolean) as RuntimeDependencyNode[];\n\n return explicitDeps;\n}\n\nexport function getSingletonKey(node: RuntimeDependencyNode): string {\n return node.singletonKey ?? `${node.kind}:${node.key}:${node.url}`;\n}\n"],"mappings":";;;AAOA,SAAgB,iBAAiB,QAA2D;CAC1F,MAAM,wBAAQ,IAAI,IAAmC;CAErD,IAAI,OAAO,KAAK,KACd,MAAM,IAAI,OAAO;EACf,KAAK;EACL,MAAM;EACN,MAAM,OAAO,IAAI;EACjB,KAAK,OAAO,IAAI;EAChB,OAAO,OAAO,IAAI;EAClB,QAAQ,OAAO,IAAI;EACnB,WAAW,OAAO,IAAI;EACtB,MAAM,OAAO,IAAI;EACjB,OAAO,OAAO,IAAI;EAClB,WAAW,OAAO,IAAI;EACtB,SAAS,OAAO,IAAI;EACpB,WAAW,OAAO,IAAI;EACtB,QAAQ,OAAO,IAAI;EACnB,WAAW,OAAO,IAAI;EACtB,cAAc;EACd,cAAc,OAAO,OAAO,IAAI;CAClC,CAAC;CAGH,IAAI,OAAO,MAAM,KACf,MAAM,IAAI,QAAQ;EAChB,KAAK;EACL,MAAM;EACN,MAAM,OAAO,KAAK;EAClB,KAAK,OAAO,KAAK;EACjB,OAAO,OAAO,KAAK;EACnB,QAAQ,OAAO,KAAK;EACpB,YAAY,OAAO,KAAK;EACxB,WAAW,OAAO,KAAK;EACvB,MAAM,OAAO,KAAK;EAClB,OAAO,OAAO,KAAK;EACnB,WAAW,OAAO,KAAK;EACvB,SAAS,OAAO,KAAK;EACrB,WAAW,OAAO,KAAK;EACvB,QAAQ,OAAO,KAAK;EACpB,WAAW,OAAO,KAAK;EACvB,cAAc;EACd,cAAc,QAAQ,OAAO,KAAK;CACpC,CAAC;CAGH,IAAI,OAAO,IAAI,KACb,MAAM,IAAI,MAAM;EACd,KAAK;EACL,MAAM;EACN,MAAM,OAAO,GAAG;EAChB,KAAK,OAAO,GAAG;EACf,OAAO,OAAO,GAAG;EACjB,QAAQ,OAAO,GAAG;EAClB,WAAW,OAAO,GAAG;EACrB,MAAM,OAAO,GAAG;EAChB,WAAW,OAAO,GAAG;EACrB,WAAW,OAAO,GAAG;EACrB,cAAc;EACd,cAAc,MAAM,OAAO,GAAG;CAChC,CAAC;CAGH,KAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,OAAO,WAAW,CAAC,CAAC,GAAG;EAChE,IAAI,CAAC,OAAO,KAAK;EACjB,MAAM,IAAI,KAAK;GACb;GACA,MAAM;GACN,MAAM,OAAO;GACb,KAAK,OAAO;GACZ,OAAO,OAAO;GACd,QAAQ,OAAO;GACf,YAAY,OAAO;GACnB,WAAW,OAAO;GAClB,MAAM,OAAO;GACb,OAAO,OAAO;GACd,WAAW,OAAO;GAClB,SAAS,OAAO;GAChB,WAAW,OAAO;GAClB,QAAQ,OAAO;GACf,IAAI,OAAO;GACX,QAAQ,OAAO;GACf,WAAW,OAAO;GAClB,cAAc;GACd,cAAc,UAAU,IAAI,GAAG,OAAO;EACxC,CAAC;CACH;CAEA,OAAO;AACT;AAEA,SAAgB,uBACd,SAQyB;CACzB,IAAI,CAAC,SAAS,QAAQ,OAAO,CAAC;CAC9B,OAAO,QAAQ,KAAK,OAAO;EACzB,KAAK,EAAE;EACP,MAAM;EACN,MAAM,EAAE;EACR,KAAK,EAAE;EACP,OAAO,GAAG,EAAE,IAAI;EAChB,QAAQ;EACR,WAAW,EAAE;EACb,SAAS,EAAE;EACX,WAAW,EAAE;EACb,cAAc;EACd,cAAc,UAAU,EAAE,IAAI,GAAG,EAAE;CACrC,EAAE;AACJ;AAEA,SAAgB,mBAAmB,QAAsC;CACvE,MAAM,QACJ,OAAO,SAAS,OAAO,KAAK,OAAO,KAAK,CAAC,CAAC,SAAS,IAC/C,IAAI,IAAI,OAAO,QAAQ,OAAO,KAAK,CAAC,IACpC,iBAAiB,MAAM;CAE7B,OAAO;EAAE;EAAO,QADD,gBAAgB,KACV;CAAE;AACzB;AAEA,SAAgB,2BAA2B,OAAqD;CAC9F,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,SAAS,SAAS,EAAE,SAAS,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG;AAChG;AAEA,SAAgB,gBAAgB,OAAqD;CACnF,MAAM,2BAAW,IAAI,IAAoB;CACzC,MAAM,4BAAY,IAAI,IAAyB;CAE/C,KAAK,MAAM,OAAO,MAAM,KAAK,GAAG;EAC9B,SAAS,IAAI,KAAK,CAAC;EACnB,UAAU,IAAI,qBAAK,IAAI,IAAI,CAAC;CAC9B;CAEA,KAAK,MAAM,CAAC,KAAK,SAAS,OACxB,KAAK,MAAM,OAAO,KAAK,aAAa,CAAC,GACnC,IAAI,MAAM,IAAI,GAAG,GAAG;EAClB,UAAU,IAAI,GAAG,CAAC,CAAE,IAAI,GAAG;EAC3B,SAAS,IAAI,MAAM,SAAS,IAAI,GAAG,KAAK,KAAK,CAAC;CAChD;CAIJ,MAAM,UAAU,MAAM,IAAI,KAAK;CAC/B,IAAI,WAAW,CAAC,QAAQ,WAAW,QACjC;OAAK,MAAM,UAAU,2BAA2B,KAAK,GACnD,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,CAAE,IAAI,KAAK,GAAG;GACtC,UAAU,IAAI,MAAM,CAAC,CAAE,IAAI,KAAK;GAChC,SAAS,IAAI,QAAQ,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC;EACpD;CACF;CAGF,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,CAAC,KAAK,WAAW,UAC1B,IAAI,WAAW,GAAG,MAAM,KAAK,GAAG;CAElC,MAAM,KAAK;CAEX,MAAM,SAAmB,CAAC;CAC1B,OAAO,MAAM,SAAS,GAAG;EACvB,MAAM,UAAU,MAAM,MAAM;EAC5B,OAAO,KAAK,OAAO;EACnB,MAAM,YAAY,UAAU,IAAI,OAAO;EACvC,IAAI,WACF,KAAK,MAAM,YAAY,WAAW;GAChC,MAAM,aAAa,SAAS,IAAI,QAAQ,KAAK,KAAK;GAClD,SAAS,IAAI,UAAU,SAAS;GAChC,IAAI,cAAc,GAAG;IACnB,MAAM,YAAY,MAAM,WAAW,MAAM,IAAI,QAAQ;IACrD,IAAI,cAAc,IAAI,MAAM,KAAK,QAAQ;SACpC,MAAM,OAAO,WAAW,GAAG,QAAQ;GAC1C;EACF;CAEJ;CAEA,IAAI,OAAO,WAAW,MAAM,MAAM;EAChC,MAAM,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC;EAClE,MAAM,IAAI,MACR,uCAAuC,OAAO,KAAK,MAAM,EAAE,mDAC7D;CACF;CAEA,OAAO;AACT;AAEA,SAAgB,mBACd,aACA,eACoC;CACpC,MAAM,SAAS,IAAI,IAAI,WAAW;CAElC,KAAK,MAAM,QAAQ,eAAe;EAChC,IAAI,OAAO,IAAI,KAAK,GAAG,KAAK,OAAO,IAAI,KAAK,GAAG,CAAC,CAAE,iBAAiB,UACjE;EAEF,OAAO,IAAI,KAAK,KAAK,IAAI;CAC3B;CAEA,OAAO;AACT;AAEA,SAAgB,uBACd,MACA,UACyB;CACzB,IAAI,KAAK,SAAS,SAAS,CAAC,KAAK,WAAW,QAC1C,OAAO,2BAA2B,QAAQ,CAAC,CACxC,KAAK,MAAM,SAAS,IAAI,CAAC,CAAC,CAAC,CAC3B,OAAO,OAAO;CAOnB,QAJsB,KAAK,aAAa,CAAC,EAAC,CACvC,KAAK,MAAM,SAAS,IAAI,CAAC,CAAC,CAAC,CAC3B,OAAO,OAEQ;AACpB;AAEA,SAAgB,gBAAgB,MAAqC;CACnE,OAAO,KAAK,gBAAgB,GAAG,KAAK,KAAK,GAAG,KAAK,IAAI,GAAG,KAAK;AAC/D"}
|
package/dist/dag.d.cts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { JsonObject, RuntimeConfig, RuntimeDependencyNode } from "./types.cjs";
|
|
2
|
+
//#region src/dag.d.ts
|
|
3
|
+
interface DependencyDAG {
|
|
4
|
+
nodes: Map<string, RuntimeDependencyNode>;
|
|
5
|
+
sorted: string[];
|
|
6
|
+
}
|
|
7
|
+
declare function normalizeToNodes(config: RuntimeConfig): Map<string, RuntimeDependencyNode>;
|
|
8
|
+
declare function manifestPluginsToNodes(plugins: Array<{
|
|
9
|
+
key: string;
|
|
10
|
+
name: string;
|
|
11
|
+
url: string;
|
|
12
|
+
dependsOn?: string[];
|
|
13
|
+
secrets?: string[];
|
|
14
|
+
variables?: JsonObject;
|
|
15
|
+
}>): RuntimeDependencyNode[];
|
|
16
|
+
declare function buildDependencyDAG(config: RuntimeConfig): DependencyDAG;
|
|
17
|
+
declare function getImplicitApiDependencies(nodes: Map<string, RuntimeDependencyNode>): string[];
|
|
18
|
+
declare function topologicalSort(nodes: Map<string, RuntimeDependencyNode>): string[];
|
|
19
|
+
declare function mergeManifestNodes(configNodes: Map<string, RuntimeDependencyNode>, manifestNodes: RuntimeDependencyNode[]): Map<string, RuntimeDependencyNode>;
|
|
20
|
+
declare function getDependenciesForNode(node: RuntimeDependencyNode, allNodes: Map<string, RuntimeDependencyNode>): RuntimeDependencyNode[];
|
|
21
|
+
declare function getSingletonKey(node: RuntimeDependencyNode): string;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { DependencyDAG, buildDependencyDAG, getDependenciesForNode, getImplicitApiDependencies, getSingletonKey, manifestPluginsToNodes, mergeManifestNodes, normalizeToNodes, topologicalSort };
|
|
24
|
+
//# sourceMappingURL=dag.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag.d.cts","names":[],"sources":["../src/dag.ts"],"mappings":";;UAEiB;EACf,OAAO,YAAY;EACnB;;iBAGc,iBAAiB,QAAQ,gBAAgB,YAAY;iBA2FrD,uBACd,SAAS;EACP;EACA;EACA;EACA;EACA;EACA,YAAY;KAEb;iBAiBa,mBAAmB,QAAQ,gBAAgB;iBAS3C,2BAA2B,OAAO,YAAY;iBAI9C,gBAAgB,OAAO,YAAY;iBA8DnC,mBACd,aAAa,YAAY,wBACzB,eAAe,0BACd,YAAY;iBAaC,uBACd,MAAM,uBACN,UAAU,YAAY,yBACrB;iBAca,gBAAgB,MAAM"}
|
package/dist/dag.d.mts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { JsonObject, RuntimeConfig, RuntimeDependencyNode } from "./types.mjs";
|
|
2
|
+
//#region src/dag.d.ts
|
|
3
|
+
interface DependencyDAG {
|
|
4
|
+
nodes: Map<string, RuntimeDependencyNode>;
|
|
5
|
+
sorted: string[];
|
|
6
|
+
}
|
|
7
|
+
declare function normalizeToNodes(config: RuntimeConfig): Map<string, RuntimeDependencyNode>;
|
|
8
|
+
declare function manifestPluginsToNodes(plugins: Array<{
|
|
9
|
+
key: string;
|
|
10
|
+
name: string;
|
|
11
|
+
url: string;
|
|
12
|
+
dependsOn?: string[];
|
|
13
|
+
secrets?: string[];
|
|
14
|
+
variables?: JsonObject;
|
|
15
|
+
}>): RuntimeDependencyNode[];
|
|
16
|
+
declare function buildDependencyDAG(config: RuntimeConfig): DependencyDAG;
|
|
17
|
+
declare function getImplicitApiDependencies(nodes: Map<string, RuntimeDependencyNode>): string[];
|
|
18
|
+
declare function topologicalSort(nodes: Map<string, RuntimeDependencyNode>): string[];
|
|
19
|
+
declare function mergeManifestNodes(configNodes: Map<string, RuntimeDependencyNode>, manifestNodes: RuntimeDependencyNode[]): Map<string, RuntimeDependencyNode>;
|
|
20
|
+
declare function getDependenciesForNode(node: RuntimeDependencyNode, allNodes: Map<string, RuntimeDependencyNode>): RuntimeDependencyNode[];
|
|
21
|
+
declare function getSingletonKey(node: RuntimeDependencyNode): string;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { DependencyDAG, buildDependencyDAG, getDependenciesForNode, getImplicitApiDependencies, getSingletonKey, manifestPluginsToNodes, mergeManifestNodes, normalizeToNodes, topologicalSort };
|
|
24
|
+
//# sourceMappingURL=dag.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag.d.mts","names":[],"sources":["../src/dag.ts"],"mappings":";;UAEiB;EACf,OAAO,YAAY;EACnB;;iBAGc,iBAAiB,QAAQ,gBAAgB,YAAY;iBA2FrD,uBACd,SAAS;EACP;EACA;EACA;EACA;EACA;EACA,YAAY;KAEb;iBAiBa,mBAAmB,QAAQ,gBAAgB;iBAS3C,2BAA2B,OAAO,YAAY;iBAI9C,gBAAgB,OAAO,YAAY;iBA8DnC,mBACd,aAAa,YAAY,wBACzB,eAAe,0BACd,YAAY;iBAaC,uBACd,MAAM,uBACN,UAAU,YAAY,yBACrB;iBAca,gBAAgB,MAAM"}
|
package/dist/dag.mjs
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
//#region src/dag.ts
|
|
2
|
+
function normalizeToNodes(config) {
|
|
3
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
4
|
+
if (config.api?.url) nodes.set("api", {
|
|
5
|
+
key: "api",
|
|
6
|
+
kind: "api",
|
|
7
|
+
name: config.api.name,
|
|
8
|
+
url: config.api.url,
|
|
9
|
+
entry: config.api.entry,
|
|
10
|
+
source: config.api.source,
|
|
11
|
+
localPath: config.api.localPath,
|
|
12
|
+
port: config.api.port,
|
|
13
|
+
proxy: config.api.proxy,
|
|
14
|
+
variables: config.api.variables,
|
|
15
|
+
secrets: config.api.secrets,
|
|
16
|
+
integrity: config.api.integrity,
|
|
17
|
+
shared: config.api.shared,
|
|
18
|
+
dependsOn: config.api.dependsOn,
|
|
19
|
+
sourceOrigin: "config",
|
|
20
|
+
singletonKey: `api:${config.api.url}`
|
|
21
|
+
});
|
|
22
|
+
if (config.auth?.url) nodes.set("auth", {
|
|
23
|
+
key: "auth",
|
|
24
|
+
kind: "auth",
|
|
25
|
+
name: config.auth.name,
|
|
26
|
+
url: config.auth.url,
|
|
27
|
+
entry: config.auth.entry,
|
|
28
|
+
source: config.auth.source,
|
|
29
|
+
extendsRef: config.auth.extendsRef,
|
|
30
|
+
localPath: config.auth.localPath,
|
|
31
|
+
port: config.auth.port,
|
|
32
|
+
proxy: config.auth.proxy,
|
|
33
|
+
variables: config.auth.variables,
|
|
34
|
+
secrets: config.auth.secrets,
|
|
35
|
+
integrity: config.auth.integrity,
|
|
36
|
+
shared: config.auth.shared,
|
|
37
|
+
dependsOn: config.auth.dependsOn,
|
|
38
|
+
sourceOrigin: "config",
|
|
39
|
+
singletonKey: `auth:${config.auth.url}`
|
|
40
|
+
});
|
|
41
|
+
if (config.ui?.url) nodes.set("ui", {
|
|
42
|
+
key: "ui",
|
|
43
|
+
kind: "ui",
|
|
44
|
+
name: config.ui.name,
|
|
45
|
+
url: config.ui.url,
|
|
46
|
+
entry: config.ui.entry,
|
|
47
|
+
source: config.ui.source,
|
|
48
|
+
localPath: config.ui.localPath,
|
|
49
|
+
port: config.ui.port,
|
|
50
|
+
integrity: config.ui.integrity,
|
|
51
|
+
dependsOn: config.ui.dependsOn,
|
|
52
|
+
sourceOrigin: "config",
|
|
53
|
+
singletonKey: `ui:${config.ui.url}`
|
|
54
|
+
});
|
|
55
|
+
for (const [key, plugin] of Object.entries(config.plugins ?? {})) {
|
|
56
|
+
if (!plugin.url) continue;
|
|
57
|
+
nodes.set(key, {
|
|
58
|
+
key,
|
|
59
|
+
kind: "plugin",
|
|
60
|
+
name: plugin.name,
|
|
61
|
+
url: plugin.url,
|
|
62
|
+
entry: plugin.entry,
|
|
63
|
+
source: plugin.source,
|
|
64
|
+
extendsRef: plugin.extendsRef,
|
|
65
|
+
localPath: plugin.localPath,
|
|
66
|
+
port: plugin.port,
|
|
67
|
+
proxy: plugin.proxy,
|
|
68
|
+
variables: plugin.variables,
|
|
69
|
+
secrets: plugin.secrets,
|
|
70
|
+
integrity: plugin.integrity,
|
|
71
|
+
shared: plugin.shared,
|
|
72
|
+
ui: plugin.ui,
|
|
73
|
+
routes: plugin.routes,
|
|
74
|
+
dependsOn: plugin.dependsOn,
|
|
75
|
+
sourceOrigin: "config",
|
|
76
|
+
singletonKey: `plugin:${key}:${plugin.url}`
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return nodes;
|
|
80
|
+
}
|
|
81
|
+
function manifestPluginsToNodes(plugins) {
|
|
82
|
+
if (!plugins?.length) return [];
|
|
83
|
+
return plugins.map((p) => ({
|
|
84
|
+
key: p.key,
|
|
85
|
+
kind: "plugin",
|
|
86
|
+
name: p.name,
|
|
87
|
+
url: p.url,
|
|
88
|
+
entry: `${p.url}/mf-manifest.json`,
|
|
89
|
+
source: "remote",
|
|
90
|
+
dependsOn: p.dependsOn,
|
|
91
|
+
secrets: p.secrets,
|
|
92
|
+
variables: p.variables,
|
|
93
|
+
sourceOrigin: "manifest",
|
|
94
|
+
singletonKey: `plugin:${p.key}:${p.url}`
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
function buildDependencyDAG(config) {
|
|
98
|
+
const nodes = config.nodes && Object.keys(config.nodes).length > 0 ? new Map(Object.entries(config.nodes)) : normalizeToNodes(config);
|
|
99
|
+
return {
|
|
100
|
+
nodes,
|
|
101
|
+
sorted: topologicalSort(nodes)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function getImplicitApiDependencies(nodes) {
|
|
105
|
+
return [...nodes.values()].filter((n) => n.kind !== "api" && n.kind !== "ui").map((n) => n.key);
|
|
106
|
+
}
|
|
107
|
+
function topologicalSort(nodes) {
|
|
108
|
+
const inDegree = /* @__PURE__ */ new Map();
|
|
109
|
+
const adjacency = /* @__PURE__ */ new Map();
|
|
110
|
+
for (const key of nodes.keys()) {
|
|
111
|
+
inDegree.set(key, 0);
|
|
112
|
+
adjacency.set(key, /* @__PURE__ */ new Set());
|
|
113
|
+
}
|
|
114
|
+
for (const [key, node] of nodes) for (const dep of node.dependsOn ?? []) if (nodes.has(dep)) {
|
|
115
|
+
adjacency.get(dep).add(key);
|
|
116
|
+
inDegree.set(key, (inDegree.get(key) ?? 0) + 1);
|
|
117
|
+
}
|
|
118
|
+
const apiNode = nodes.get("api");
|
|
119
|
+
if (apiNode && !apiNode.dependsOn?.length) {
|
|
120
|
+
for (const depKey of getImplicitApiDependencies(nodes)) if (!adjacency.get(depKey).has("api")) {
|
|
121
|
+
adjacency.get(depKey).add("api");
|
|
122
|
+
inDegree.set("api", (inDegree.get("api") ?? 0) + 1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const queue = [];
|
|
126
|
+
for (const [key, degree] of inDegree) if (degree === 0) queue.push(key);
|
|
127
|
+
queue.sort();
|
|
128
|
+
const result = [];
|
|
129
|
+
while (queue.length > 0) {
|
|
130
|
+
const current = queue.shift();
|
|
131
|
+
result.push(current);
|
|
132
|
+
const neighbors = adjacency.get(current);
|
|
133
|
+
if (neighbors) for (const neighbor of neighbors) {
|
|
134
|
+
const newDegree = (inDegree.get(neighbor) ?? 0) - 1;
|
|
135
|
+
inDegree.set(neighbor, newDegree);
|
|
136
|
+
if (newDegree === 0) {
|
|
137
|
+
const insertPos = queue.findIndex((k) => k > neighbor);
|
|
138
|
+
if (insertPos === -1) queue.push(neighbor);
|
|
139
|
+
else queue.splice(insertPos, 0, neighbor);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (result.length !== nodes.size) {
|
|
144
|
+
const cyclic = [...nodes.keys()].filter((k) => !result.includes(k));
|
|
145
|
+
throw new Error(`Circular dependency detected among: ${cyclic.join(" -> ")}. Check dependsOn declarations in bos.config.json.`);
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
function mergeManifestNodes(configNodes, manifestNodes) {
|
|
150
|
+
const merged = new Map(configNodes);
|
|
151
|
+
for (const node of manifestNodes) {
|
|
152
|
+
if (merged.has(node.key) && merged.get(node.key).sourceOrigin === "config") continue;
|
|
153
|
+
merged.set(node.key, node);
|
|
154
|
+
}
|
|
155
|
+
return merged;
|
|
156
|
+
}
|
|
157
|
+
function getDependenciesForNode(node, allNodes) {
|
|
158
|
+
if (node.kind === "api" && !node.dependsOn?.length) return getImplicitApiDependencies(allNodes).map((k) => allNodes.get(k)).filter(Boolean);
|
|
159
|
+
return (node.dependsOn ?? []).map((k) => allNodes.get(k)).filter(Boolean);
|
|
160
|
+
}
|
|
161
|
+
function getSingletonKey(node) {
|
|
162
|
+
return node.singletonKey ?? `${node.kind}:${node.key}:${node.url}`;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
//#endregion
|
|
166
|
+
export { buildDependencyDAG, getDependenciesForNode, getImplicitApiDependencies, getSingletonKey, manifestPluginsToNodes, mergeManifestNodes, normalizeToNodes, topologicalSort };
|
|
167
|
+
//# sourceMappingURL=dag.mjs.map
|