@lssm/lib.contracts 1.7.2 → 1.7.4
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/app-config/contracts.d.ts +50 -50
- package/dist/app-config/contracts.d.ts.map +1 -1
- package/dist/app-config/events.d.ts +27 -27
- package/dist/app-config/events.d.ts.map +1 -1
- package/dist/app-config/events.js.map +1 -1
- package/dist/app-config/lifecycle-contracts.d.ts +80 -80
- package/dist/app-config/lifecycle-contracts.d.ts.map +1 -1
- package/dist/capabilities/openbanking.d.ts.map +1 -1
- package/dist/capabilities/openbanking.js.map +1 -1
- package/dist/graphql-federation/dist/index.js +2 -0
- package/dist/graphql-federation/dist/index.js.map +1 -0
- package/dist/integrations/contracts.d.ts +102 -102
- package/dist/integrations/openbanking/contracts/accounts.d.ts +66 -66
- package/dist/integrations/openbanking/contracts/balances.d.ts +34 -34
- package/dist/integrations/openbanking/contracts/index.js.map +1 -1
- package/dist/integrations/openbanking/contracts/transactions.d.ts +48 -48
- package/dist/integrations/openbanking/guards.js.map +1 -1
- package/dist/integrations/openbanking/models.d.ts +55 -55
- package/dist/integrations/openbanking/models.js.map +1 -1
- package/dist/integrations/openbanking/telemetry.js.map +1 -1
- package/dist/integrations/providers/powens.js.map +1 -1
- package/dist/knowledge/contracts.d.ts +66 -66
- package/dist/knowledge/contracts.js.map +1 -1
- package/dist/knowledge/spaces/product-canon.js.map +1 -1
- package/dist/knowledge/spaces/support-faq.js.map +1 -1
- package/dist/knowledge/spec.js.map +1 -1
- package/dist/onboarding-base.d.ts +29 -29
- package/dist/onboarding-base.d.ts.map +1 -1
- package/dist/regenerator/executor.js.map +1 -1
- package/dist/regenerator/service.js.map +1 -1
- package/dist/regenerator/sinks.js.map +1 -1
- package/dist/regenerator/utils.js.map +1 -1
- package/dist/server/graphql-schema-export.js +1 -1
- package/dist/server/graphql-schema-export.js.map +1 -1
- package/package.json +173 -2
- package/dist/graphql-federation/src/index.js +0 -2
- package/dist/graphql-federation/src/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","names":["deps: ProposalExecutorDeps","actionResults: ActionExecutionResult[]"],"sources":["../../src/regenerator/executor.ts"],"sourcesContent":["import type { SpecChangeProposal, ProposalAction, RegenerationContext } from './types';\n\nexport type ExecutionStatus = 'success' | 'skipped' | 'failed';\n\nexport interface ActionExecutionResult {\n index: number;\n action: ProposalAction;\n status: ExecutionStatus;\n startedAt: Date;\n finishedAt: Date;\n reason?: string;\n error?: Error;\n output?: unknown;\n}\n\nexport interface ProposalExecutionResult {\n proposalId: string;\n contextId: string;\n startedAt: Date;\n finishedAt: Date;\n status: 'success' | 'partial' | 'failed';\n actions: ActionExecutionResult[];\n}\n\nexport type UpdateBlueprintAction = Extract<ProposalAction, { kind: 'update_blueprint' }>;\nexport type UpdateTenantConfigAction = Extract<ProposalAction, { kind: 'update_tenant_config' }>;\nexport type RunTestsAction = Extract<ProposalAction, { kind: 'run_tests' }>;\nexport type RunMigrationsAction = Extract<ProposalAction, { kind: 'run_migrations' }>;\nexport type TriggerRegenerationAction = Extract<ProposalAction, { kind: 'trigger_regeneration' }>;\n\nexport interface BlueprintUpdater {\n applyBlueprintUpdate(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: UpdateBlueprintAction\n ): Promise<unknown>;\n}\n\nexport interface TenantConfigUpdater {\n applyTenantConfigUpdate(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: UpdateTenantConfigAction\n ): Promise<unknown>;\n}\n\nexport interface TestExecutor {\n runTests(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: RunTestsAction\n ): Promise<unknown>;\n}\n\nexport interface MigrationExecutor {\n runMigrations(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: RunMigrationsAction\n ): Promise<unknown>;\n}\n\nexport interface RegenerationTrigger {\n triggerRegeneration(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: TriggerRegenerationAction\n ): Promise<unknown>;\n}\n\nexport interface ProposalExecutorOptions {\n dryRun?: boolean;\n}\n\nexport interface ProposalExecutorDeps {\n blueprintUpdater?: BlueprintUpdater;\n tenantConfigUpdater?: TenantConfigUpdater;\n testExecutor?: TestExecutor;\n migrationExecutor?: MigrationExecutor;\n regenerationTrigger?: RegenerationTrigger;\n}\n\nexport class ProposalExecutor {\n constructor(private readonly deps: ProposalExecutorDeps = {}) {}\n\n async execute(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n options: ProposalExecutorOptions = {}\n ): Promise<ProposalExecutionResult> {\n const startedAt = new Date();\n const actionResults: ActionExecutionResult[] = [];\n\n for (const [index, action] of proposal.actions.entries()) {\n // eslint-disable-next-line no-await-in-loop\n const result = await this.executeAction({\n index,\n action,\n context,\n proposal,\n options,\n });\n actionResults.push(result);\n }\n\n const finishedAt = new Date();\n const summaryStatus = summarizeStatus(actionResults);\n\n return {\n proposalId: proposal.id,\n contextId: context.id,\n startedAt,\n finishedAt,\n status: summaryStatus,\n actions: actionResults,\n };\n }\n\n private async executeAction({\n index,\n action,\n context,\n proposal,\n options,\n }: {\n index: number;\n action: ProposalAction;\n context: RegenerationContext;\n proposal: SpecChangeProposal;\n options: ProposalExecutorOptions;\n }): Promise<ActionExecutionResult> {\n const startedAt = new Date();\n const dryRun = options.dryRun ?? false;\n\n const complete = (\n status: ExecutionStatus,\n params: {\n reason?: string;\n output?: unknown;\n error?: Error;\n } = {}\n ): ActionExecutionResult => ({\n index,\n action,\n status,\n startedAt,\n finishedAt: new Date(),\n reason: params.reason,\n output: params.output,\n error: params.error,\n });\n\n if (dryRun) {\n return complete('skipped', { reason: 'dry_run' });\n }\n\n try {\n switch (action.kind) {\n case 'update_blueprint': {\n const updater = this.deps.blueprintUpdater;\n if (!updater) {\n return complete('skipped', { reason: 'missing_blueprint_updater' });\n }\n const output = await updater.applyBlueprintUpdate(context, proposal, action);\n return complete('success', { output });\n }\n case 'update_tenant_config': {\n const updater = this.deps.tenantConfigUpdater;\n if (!updater) {\n return complete('skipped', { reason: 'missing_tenant_config_updater' });\n }\n const output = await updater.applyTenantConfigUpdate(context, proposal, action);\n return complete('success', { output });\n }\n case 'run_tests': {\n const executor = this.deps.testExecutor;\n if (!executor) {\n return complete('skipped', { reason: 'missing_test_executor' });\n }\n const output = await executor.runTests(context, proposal, action);\n return complete('success', { output });\n }\n case 'run_migrations': {\n const executor = this.deps.migrationExecutor;\n if (!executor) {\n return complete('skipped', { reason: 'missing_migration_executor' });\n }\n const output = await executor.runMigrations(context, proposal, action);\n return complete('success', { output });\n }\n case 'trigger_regeneration': {\n const trigger = this.deps.regenerationTrigger;\n if (!trigger) {\n return complete('skipped', { reason: 'missing_regeneration_trigger' });\n }\n const output = await trigger.triggerRegeneration(context, proposal, action);\n return complete('success', { output });\n }\n default: {\n return complete('skipped', { reason: 'unknown_action' });\n }\n }\n } catch (error) {\n return complete('failed', {\n error: error instanceof Error ? error : new Error(String(error)),\n });\n }\n }\n}\n\nfunction summarizeStatus(actionResults: ActionExecutionResult[]): ProposalExecutionResult['status'] {\n if (actionResults.some((result) => result.status === 'failed')) {\n return 'failed';\n }\n if (actionResults.some((result) => result.status === 'success') &&\n actionResults.some((result) => result.status === 'skipped')) {\n return 'partial';\n }\n if (actionResults.every((result) => result.status === 'skipped')) {\n return 'partial';\n }\n return 'success';\n}\n\n\n\n\n"],"mappings":"AAkFA,IAAa,EAAb,KAA8B,CAC5B,YAAY,EAA8C,EAAE,CAAE,CAAjC,KAAA,KAAA,EAE7B,MAAM,QACJ,EACA,EACA,EAAmC,EAAE,CACH,CAClC,IAAM,EAAY,IAAI,KAChBC,EAAyC,EAAE,CAEjD,IAAK,GAAM,CAAC,EAAO,KAAW,EAAS,QAAQ,SAAS,CAAE,CAExD,IAAM,EAAS,MAAM,KAAK,cAAc,CACtC,QACA,SACA,UACA,WACA,UACD,CAAC,CACF,EAAc,KAAK,EAAO,CAG5B,IAAM,EAAa,IAAI,KACjB,EAAgB,EAAgB,EAAc,CAEpD,MAAO,CACL,WAAY,EAAS,GACrB,UAAW,EAAQ,GACnB,YACA,aACA,OAAQ,EACR,QAAS,EACV,CAGH,MAAc,cAAc,CAC1B,QACA,SACA,UACA,WACA,WAOiC,CACjC,IAAM,EAAY,IAAI,KAChB,EAAS,EAAQ,QAAU,GAE3B,GACJ,EACA,EAII,EAAE,IACqB,CAC3B,QACA,SACA,SACA,YACA,WAAY,IAAI,KAChB,OAAQ,EAAO,OACf,OAAQ,EAAO,OACf,MAAO,EAAO,MACf,EAED,GAAI,EACF,OAAO,EAAS,UAAW,CAAE,OAAQ,UAAW,CAAC,CAGnD,GAAI,CACF,OAAQ,EAAO,KAAf,CACE,IAAK,mBAAoB,CACvB,IAAM,EAAU,KAAK,KAAK,iBAK1B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAQ,qBAAqB,EAAS,EAAU,EAAO,CACvC,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,4BAA6B,CAAC,CAKvE,IAAK,uBAAwB,CAC3B,IAAM,EAAU,KAAK,KAAK,oBAK1B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAQ,wBAAwB,EAAS,EAAU,EAAO,CAC1C,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,gCAAiC,CAAC,CAK3E,IAAK,YAAa,CAChB,IAAM,EAAW,KAAK,KAAK,aAK3B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAS,SAAS,EAAS,EAAU,EAAO,CAC5B,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,wBAAyB,CAAC,CAKnE,IAAK,iBAAkB,CACrB,IAAM,EAAW,KAAK,KAAK,kBAK3B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAS,cAAc,EAAS,EAAU,EAAO,CACjC,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,6BAA8B,CAAC,CAKxE,IAAK,uBAAwB,CAC3B,IAAM,EAAU,KAAK,KAAK,oBAK1B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAQ,oBAAoB,EAAS,EAAU,EAAO,CACtC,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,+BAAgC,CAAC,CAK1E,QACE,OAAO,EAAS,UAAW,CAAE,OAAQ,iBAAkB,CAAC,QAGrD,EAAO,CACd,OAAO,EAAS,SAAU,CACxB,MAAO,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC,CACjE,CAAC,IAKR,SAAS,EAAgB,EAA2E,CAWlG,OAVI,EAAc,KAAM,GAAW,EAAO,SAAW,SAAS,CACrD,SAEL,EAAc,KAAM,GAAW,EAAO,SAAW,UAAU,EAC3D,EAAc,KAAM,GAAW,EAAO,SAAW,UAAU,EAG3D,EAAc,MAAO,GAAW,EAAO,SAAW,UAAU,CACvD,UAEF"}
|
|
1
|
+
{"version":3,"file":"executor.js","names":["deps: ProposalExecutorDeps","actionResults: ActionExecutionResult[]"],"sources":["../../src/regenerator/executor.ts"],"sourcesContent":["import type { SpecChangeProposal, ProposalAction, RegenerationContext } from './types';\n\nexport type ExecutionStatus = 'success' | 'skipped' | 'failed';\n\nexport interface ActionExecutionResult {\n index: number;\n action: ProposalAction;\n status: ExecutionStatus;\n startedAt: Date;\n finishedAt: Date;\n reason?: string;\n error?: Error;\n output?: unknown;\n}\n\nexport interface ProposalExecutionResult {\n proposalId: string;\n contextId: string;\n startedAt: Date;\n finishedAt: Date;\n status: 'success' | 'partial' | 'failed';\n actions: ActionExecutionResult[];\n}\n\nexport type UpdateBlueprintAction = Extract<ProposalAction, { kind: 'update_blueprint' }>;\nexport type UpdateTenantConfigAction = Extract<ProposalAction, { kind: 'update_tenant_config' }>;\nexport type RunTestsAction = Extract<ProposalAction, { kind: 'run_tests' }>;\nexport type RunMigrationsAction = Extract<ProposalAction, { kind: 'run_migrations' }>;\nexport type TriggerRegenerationAction = Extract<ProposalAction, { kind: 'trigger_regeneration' }>;\n\nexport interface BlueprintUpdater {\n applyBlueprintUpdate(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: UpdateBlueprintAction\n ): Promise<unknown>;\n}\n\nexport interface TenantConfigUpdater {\n applyTenantConfigUpdate(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: UpdateTenantConfigAction\n ): Promise<unknown>;\n}\n\nexport interface TestExecutor {\n runTests(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: RunTestsAction\n ): Promise<unknown>;\n}\n\nexport interface MigrationExecutor {\n runMigrations(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: RunMigrationsAction\n ): Promise<unknown>;\n}\n\nexport interface RegenerationTrigger {\n triggerRegeneration(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n action: TriggerRegenerationAction\n ): Promise<unknown>;\n}\n\nexport interface ProposalExecutorOptions {\n dryRun?: boolean;\n}\n\nexport interface ProposalExecutorDeps {\n blueprintUpdater?: BlueprintUpdater;\n tenantConfigUpdater?: TenantConfigUpdater;\n testExecutor?: TestExecutor;\n migrationExecutor?: MigrationExecutor;\n regenerationTrigger?: RegenerationTrigger;\n}\n\nexport class ProposalExecutor {\n constructor(private readonly deps: ProposalExecutorDeps = {}) {}\n\n async execute(\n context: RegenerationContext,\n proposal: SpecChangeProposal,\n options: ProposalExecutorOptions = {}\n ): Promise<ProposalExecutionResult> {\n const startedAt = new Date();\n const actionResults: ActionExecutionResult[] = [];\n\n for (const [index, action] of proposal.actions.entries()) {\n // eslint-disable-next-line no-await-in-loop\n const result = await this.executeAction({\n index,\n action,\n context,\n proposal,\n options,\n });\n actionResults.push(result);\n }\n\n const finishedAt = new Date();\n const summaryStatus = summarizeStatus(actionResults);\n\n return {\n proposalId: proposal.id,\n contextId: context.id,\n startedAt,\n finishedAt,\n status: summaryStatus,\n actions: actionResults,\n };\n }\n\n private async executeAction({\n index,\n action,\n context,\n proposal,\n options,\n }: {\n index: number;\n action: ProposalAction;\n context: RegenerationContext;\n proposal: SpecChangeProposal;\n options: ProposalExecutorOptions;\n }): Promise<ActionExecutionResult> {\n const startedAt = new Date();\n const dryRun = options.dryRun ?? false;\n\n const complete = (\n status: ExecutionStatus,\n params: {\n reason?: string;\n output?: unknown;\n error?: Error;\n } = {}\n ): ActionExecutionResult => ({\n index,\n action,\n status,\n startedAt,\n finishedAt: new Date(),\n reason: params.reason,\n output: params.output,\n error: params.error,\n });\n\n if (dryRun) {\n return complete('skipped', { reason: 'dry_run' });\n }\n\n try {\n switch (action.kind) {\n case 'update_blueprint': {\n const updater = this.deps.blueprintUpdater;\n if (!updater) {\n return complete('skipped', { reason: 'missing_blueprint_updater' });\n }\n const output = await updater.applyBlueprintUpdate(context, proposal, action);\n return complete('success', { output });\n }\n case 'update_tenant_config': {\n const updater = this.deps.tenantConfigUpdater;\n if (!updater) {\n return complete('skipped', { reason: 'missing_tenant_config_updater' });\n }\n const output = await updater.applyTenantConfigUpdate(context, proposal, action);\n return complete('success', { output });\n }\n case 'run_tests': {\n const executor = this.deps.testExecutor;\n if (!executor) {\n return complete('skipped', { reason: 'missing_test_executor' });\n }\n const output = await executor.runTests(context, proposal, action);\n return complete('success', { output });\n }\n case 'run_migrations': {\n const executor = this.deps.migrationExecutor;\n if (!executor) {\n return complete('skipped', { reason: 'missing_migration_executor' });\n }\n const output = await executor.runMigrations(context, proposal, action);\n return complete('success', { output });\n }\n case 'trigger_regeneration': {\n const trigger = this.deps.regenerationTrigger;\n if (!trigger) {\n return complete('skipped', { reason: 'missing_regeneration_trigger' });\n }\n const output = await trigger.triggerRegeneration(context, proposal, action);\n return complete('success', { output });\n }\n default: {\n return complete('skipped', { reason: 'unknown_action' });\n }\n }\n } catch (error) {\n return complete('failed', {\n error: error instanceof Error ? error : new Error(String(error)),\n });\n }\n }\n}\n\nfunction summarizeStatus(actionResults: ActionExecutionResult[]): ProposalExecutionResult['status'] {\n if (actionResults.some((result) => result.status === 'failed')) {\n return 'failed';\n }\n if (actionResults.some((result) => result.status === 'success') &&\n actionResults.some((result) => result.status === 'skipped')) {\n return 'partial';\n }\n if (actionResults.every((result) => result.status === 'skipped')) {\n return 'partial';\n }\n return 'success';\n}\n\n\n\n\n\n\n"],"mappings":"AAkFA,IAAa,EAAb,KAA8B,CAC5B,YAAY,EAA8C,EAAE,CAAE,CAAjC,KAAA,KAAA,EAE7B,MAAM,QACJ,EACA,EACA,EAAmC,EAAE,CACH,CAClC,IAAM,EAAY,IAAI,KAChBC,EAAyC,EAAE,CAEjD,IAAK,GAAM,CAAC,EAAO,KAAW,EAAS,QAAQ,SAAS,CAAE,CAExD,IAAM,EAAS,MAAM,KAAK,cAAc,CACtC,QACA,SACA,UACA,WACA,UACD,CAAC,CACF,EAAc,KAAK,EAAO,CAG5B,IAAM,EAAa,IAAI,KACjB,EAAgB,EAAgB,EAAc,CAEpD,MAAO,CACL,WAAY,EAAS,GACrB,UAAW,EAAQ,GACnB,YACA,aACA,OAAQ,EACR,QAAS,EACV,CAGH,MAAc,cAAc,CAC1B,QACA,SACA,UACA,WACA,WAOiC,CACjC,IAAM,EAAY,IAAI,KAChB,EAAS,EAAQ,QAAU,GAE3B,GACJ,EACA,EAII,EAAE,IACqB,CAC3B,QACA,SACA,SACA,YACA,WAAY,IAAI,KAChB,OAAQ,EAAO,OACf,OAAQ,EAAO,OACf,MAAO,EAAO,MACf,EAED,GAAI,EACF,OAAO,EAAS,UAAW,CAAE,OAAQ,UAAW,CAAC,CAGnD,GAAI,CACF,OAAQ,EAAO,KAAf,CACE,IAAK,mBAAoB,CACvB,IAAM,EAAU,KAAK,KAAK,iBAK1B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAQ,qBAAqB,EAAS,EAAU,EAAO,CACvC,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,4BAA6B,CAAC,CAKvE,IAAK,uBAAwB,CAC3B,IAAM,EAAU,KAAK,KAAK,oBAK1B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAQ,wBAAwB,EAAS,EAAU,EAAO,CAC1C,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,gCAAiC,CAAC,CAK3E,IAAK,YAAa,CAChB,IAAM,EAAW,KAAK,KAAK,aAK3B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAS,SAAS,EAAS,EAAU,EAAO,CAC5B,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,wBAAyB,CAAC,CAKnE,IAAK,iBAAkB,CACrB,IAAM,EAAW,KAAK,KAAK,kBAK3B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAS,cAAc,EAAS,EAAU,EAAO,CACjC,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,6BAA8B,CAAC,CAKxE,IAAK,uBAAwB,CAC3B,IAAM,EAAU,KAAK,KAAK,oBAK1B,OAJK,EAIE,EAAS,UAAW,CAAE,OADd,MAAM,EAAQ,oBAAoB,EAAS,EAAU,EAAO,CACtC,CAAC,CAH7B,EAAS,UAAW,CAAE,OAAQ,+BAAgC,CAAC,CAK1E,QACE,OAAO,EAAS,UAAW,CAAE,OAAQ,iBAAkB,CAAC,QAGrD,EAAO,CACd,OAAO,EAAS,SAAU,CACxB,MAAO,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC,CACjE,CAAC,IAKR,SAAS,EAAgB,EAA2E,CAWlG,OAVI,EAAc,KAAM,GAAW,EAAO,SAAW,SAAS,CACrD,SAEL,EAAc,KAAM,GAAW,EAAO,SAAW,UAAU,EAC3D,EAAc,KAAM,GAAW,EAAO,SAAW,UAAU,EAG3D,EAAc,MAAO,GAAW,EAAO,SAAW,UAAU,CACvD,UAEF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","names":["options: RegeneratorOptions","proposals: SpecChangeProposal[]","envelopes: RegeneratorSignal[]","delay"],"sources":["../../src/regenerator/service.ts"],"sourcesContent":["import { setTimeout as delay } from 'node:timers/promises';\nimport type {\n ProposalSink,\n RegeneratorSignal,\n RegenerationRule,\n RegenerationContext,\n SpecChangeProposal,\n} from './types';\nimport type { SignalAdapters } from './adapters';\nimport { telemetryToEnvelope, errorToEnvelope, behaviorToEnvelope } from './utils';\n\nexport interface RegeneratorOptions {\n contexts: RegenerationContext[];\n adapters: SignalAdapters;\n rules: RegenerationRule[];\n sink: ProposalSink;\n pollIntervalMs?: number;\n batchDurationMs?: number;\n clock?: () => Date;\n}\n\nconst DEFAULT_POLL_INTERVAL = 60_000;\nconst DEFAULT_BATCH_DURATION = 5 * 60_000;\n\nexport class RegeneratorService {\n private readonly contexts: Map<string, RegenerationContext>;\n private readonly lastPoll = new Map<string, Date>();\n private timer?: NodeJS.Timeout;\n private running = false;\n private readonly pollInterval: number;\n private readonly batchDuration: number;\n private readonly clock: () => Date;\n\n constructor(private readonly options: RegeneratorOptions) {\n this.contexts = new Map(\n options.contexts.map((ctx) => [ctx.id, ctx])\n );\n this.pollInterval = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL;\n this.batchDuration = options.batchDurationMs ?? DEFAULT_BATCH_DURATION;\n this.clock = options.clock ?? (() => new Date());\n if (this.options.rules.length === 0) {\n throw new Error('RegeneratorService requires at least one rule');\n }\n }\n\n start() {\n if (this.running) return;\n this.running = true;\n void this.tick();\n this.timer = setInterval(() => {\n void this.tick();\n }, this.pollInterval);\n }\n\n stop() {\n if (!this.running) return;\n this.running = false;\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n\n async runOnce(): Promise<void> {\n await this.tick();\n }\n\n private async tick(): Promise<void> {\n const now = this.clock();\n const sinceDefault = new Date(now.getTime() - this.batchDuration);\n for (const context of this.contexts.values()) {\n const last = this.lastPoll.get(context.id) ?? sinceDefault;\n await this.evaluateContext(context, last, now);\n this.lastPoll.set(context.id, now);\n }\n }\n\n private async evaluateContext(\n context: RegenerationContext,\n since: Date,\n until: Date\n ): Promise<void> {\n const signals = await this.collectSignals(context, since, until);\n if (signals.length === 0) return;\n\n for (const rule of this.options.rules) {\n let proposals: SpecChangeProposal[] = [];\n try {\n proposals = await rule.evaluate(context, signals);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `[regenerator] rule ${rule.id} failed`,\n error instanceof Error ? error : new Error(String(error))\n );\n continue;\n }\n await this.flushProposals(context, proposals);\n }\n }\n\n private async collectSignals(\n context: RegenerationContext,\n since: Date,\n until: Date\n ): Promise<RegeneratorSignal[]> {\n const envelopes: RegeneratorSignal[] = [];\n const { adapters } = this.options;\n if (adapters.telemetry) {\n const telemetrySignals = await adapters.telemetry.pollTelemetry(\n context,\n since,\n until\n );\n envelopes.push(\n ...telemetrySignals.map((signal) =>\n telemetryToEnvelope(context.id, signal, this.clock)\n )\n );\n }\n if (adapters.errors) {\n const errorSignals = await adapters.errors.pollErrors(\n context,\n since,\n until\n );\n envelopes.push(\n ...errorSignals.map((signal) =>\n errorToEnvelope(context.id, signal, this.clock)\n )\n );\n }\n if (adapters.behavior) {\n const behaviorSignals = await adapters.behavior.pollBehavior(\n context,\n since,\n until\n );\n envelopes.push(\n ...behaviorSignals.map((signal) =>\n behaviorToEnvelope(context.id, signal, this.clock)\n )\n );\n }\n return envelopes;\n }\n\n private async flushProposals(\n context: RegenerationContext,\n proposals: SpecChangeProposal[]\n ): Promise<void> {\n for (const proposal of proposals) {\n if (proposal.signalIds.length === 0) continue;\n await this.options.sink.submit(context, proposal);\n // allow event loop to breathe when large volumes\n if (proposals.length > 10) {\n await delay(0);\n }\n }\n }\n}\n\n\n\n\n"],"mappings":"gJAwBA,IAAa,EAAb,KAAgC,CAC9B,SACA,SAA4B,IAAI,IAChC,MACA,QAAkB,GAClB,aACA,cACA,MAEA,YAAY,EAA8C,CAOxD,GAP2B,KAAA,QAAA,EAC3B,KAAK,SAAW,IAAI,IAClB,EAAQ,SAAS,IAAK,GAAQ,CAAC,EAAI,GAAI,EAAI,CAAC,CAC7C,CACD,KAAK,aAAe,EAAQ,gBAAkB,IAC9C,KAAK,cAAgB,EAAQ,iBAAmB,IAChD,KAAK,MAAQ,EAAQ,YAAgB,IAAI,MACrC,KAAK,QAAQ,MAAM,SAAW,EAChC,MAAU,MAAM,gDAAgD,CAIpE,OAAQ,CACF,KAAK,UACT,KAAK,QAAU,GACV,KAAK,MAAM,CAChB,KAAK,MAAQ,gBAAkB,CACxB,KAAK,MAAM,EACf,KAAK,aAAa,EAGvB,MAAO,CACA,KAAK,UACV,KAAK,QAAU,GACf,AAEE,KAAK,SADL,cAAc,KAAK,MAAM,CACZ,IAAA,KAIjB,MAAM,SAAyB,CAC7B,MAAM,KAAK,MAAM,CAGnB,MAAc,MAAsB,CAClC,IAAM,EAAM,KAAK,OAAO,CAClB,EAAe,IAAI,KAAK,EAAI,SAAS,CAAG,KAAK,cAAc,CACjE,IAAK,IAAM,KAAW,KAAK,SAAS,QAAQ,CAAE,CAC5C,IAAM,EAAO,KAAK,SAAS,IAAI,EAAQ,GAAG,EAAI,EAC9C,MAAM,KAAK,gBAAgB,EAAS,EAAM,EAAI,CAC9C,KAAK,SAAS,IAAI,EAAQ,GAAI,EAAI,EAItC,MAAc,gBACZ,EACA,EACA,EACe,CACf,IAAM,EAAU,MAAM,KAAK,eAAe,EAAS,EAAO,EAAM,CAC5D,KAAQ,SAAW,EAEvB,IAAK,IAAM,KAAQ,KAAK,QAAQ,MAAO,CACrC,IAAIC,EAAkC,EAAE,CACxC,GAAI,CACF,EAAY,MAAM,EAAK,SAAS,EAAS,EAAQ,OAC1C,EAAO,CAEd,QAAQ,MACN,sBAAsB,EAAK,GAAG,SAC9B,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC,CAC1D,CACD,SAEF,MAAM,KAAK,eAAe,EAAS,EAAU,EAIjD,MAAc,eACZ,EACA,EACA,EAC8B,CAC9B,IAAMC,EAAiC,EAAE,CACnC,CAAE,YAAa,KAAK,QAC1B,GAAI,EAAS,UAAW,CACtB,IAAM,EAAmB,MAAM,EAAS,UAAU,cAChD,EACA,EACA,EACD,CACD,EAAU,KACR,GAAG,EAAiB,IAAK,GACvB,EAAoB,EAAQ,GAAI,EAAQ,KAAK,MAAM,CACpD,CACF,CAEH,GAAI,EAAS,OAAQ,CACnB,IAAM,EAAe,MAAM,EAAS,OAAO,WACzC,EACA,EACA,EACD,CACD,EAAU,KACR,GAAG,EAAa,IAAK,GACnB,EAAgB,EAAQ,GAAI,EAAQ,KAAK,MAAM,CAChD,CACF,CAEH,GAAI,EAAS,SAAU,CACrB,IAAM,EAAkB,MAAM,EAAS,SAAS,aAC9C,EACA,EACA,EACD,CACD,EAAU,KACR,GAAG,EAAgB,IAAK,GACtB,EAAmB,EAAQ,GAAI,EAAQ,KAAK,MAAM,CACnD,CACF,CAEH,OAAO,EAGT,MAAc,eACZ,EACA,EACe,CACf,IAAK,IAAM,KAAY,EACjB,EAAS,UAAU,SAAW,IAClC,MAAM,KAAK,QAAQ,KAAK,OAAO,EAAS,EAAS,CAE7C,EAAU,OAAS,IACrB,MAAMC,EAAM,EAAE"}
|
|
1
|
+
{"version":3,"file":"service.js","names":["options: RegeneratorOptions","proposals: SpecChangeProposal[]","envelopes: RegeneratorSignal[]","delay"],"sources":["../../src/regenerator/service.ts"],"sourcesContent":["import { setTimeout as delay } from 'node:timers/promises';\nimport type {\n ProposalSink,\n RegeneratorSignal,\n RegenerationRule,\n RegenerationContext,\n SpecChangeProposal,\n} from './types';\nimport type { SignalAdapters } from './adapters';\nimport { telemetryToEnvelope, errorToEnvelope, behaviorToEnvelope } from './utils';\n\nexport interface RegeneratorOptions {\n contexts: RegenerationContext[];\n adapters: SignalAdapters;\n rules: RegenerationRule[];\n sink: ProposalSink;\n pollIntervalMs?: number;\n batchDurationMs?: number;\n clock?: () => Date;\n}\n\nconst DEFAULT_POLL_INTERVAL = 60_000;\nconst DEFAULT_BATCH_DURATION = 5 * 60_000;\n\nexport class RegeneratorService {\n private readonly contexts: Map<string, RegenerationContext>;\n private readonly lastPoll = new Map<string, Date>();\n private timer?: NodeJS.Timeout;\n private running = false;\n private readonly pollInterval: number;\n private readonly batchDuration: number;\n private readonly clock: () => Date;\n\n constructor(private readonly options: RegeneratorOptions) {\n this.contexts = new Map(\n options.contexts.map((ctx) => [ctx.id, ctx])\n );\n this.pollInterval = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL;\n this.batchDuration = options.batchDurationMs ?? DEFAULT_BATCH_DURATION;\n this.clock = options.clock ?? (() => new Date());\n if (this.options.rules.length === 0) {\n throw new Error('RegeneratorService requires at least one rule');\n }\n }\n\n start() {\n if (this.running) return;\n this.running = true;\n void this.tick();\n this.timer = setInterval(() => {\n void this.tick();\n }, this.pollInterval);\n }\n\n stop() {\n if (!this.running) return;\n this.running = false;\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n\n async runOnce(): Promise<void> {\n await this.tick();\n }\n\n private async tick(): Promise<void> {\n const now = this.clock();\n const sinceDefault = new Date(now.getTime() - this.batchDuration);\n for (const context of this.contexts.values()) {\n const last = this.lastPoll.get(context.id) ?? sinceDefault;\n await this.evaluateContext(context, last, now);\n this.lastPoll.set(context.id, now);\n }\n }\n\n private async evaluateContext(\n context: RegenerationContext,\n since: Date,\n until: Date\n ): Promise<void> {\n const signals = await this.collectSignals(context, since, until);\n if (signals.length === 0) return;\n\n for (const rule of this.options.rules) {\n let proposals: SpecChangeProposal[] = [];\n try {\n proposals = await rule.evaluate(context, signals);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `[regenerator] rule ${rule.id} failed`,\n error instanceof Error ? error : new Error(String(error))\n );\n continue;\n }\n await this.flushProposals(context, proposals);\n }\n }\n\n private async collectSignals(\n context: RegenerationContext,\n since: Date,\n until: Date\n ): Promise<RegeneratorSignal[]> {\n const envelopes: RegeneratorSignal[] = [];\n const { adapters } = this.options;\n if (adapters.telemetry) {\n const telemetrySignals = await adapters.telemetry.pollTelemetry(\n context,\n since,\n until\n );\n envelopes.push(\n ...telemetrySignals.map((signal) =>\n telemetryToEnvelope(context.id, signal, this.clock)\n )\n );\n }\n if (adapters.errors) {\n const errorSignals = await adapters.errors.pollErrors(\n context,\n since,\n until\n );\n envelopes.push(\n ...errorSignals.map((signal) =>\n errorToEnvelope(context.id, signal, this.clock)\n )\n );\n }\n if (adapters.behavior) {\n const behaviorSignals = await adapters.behavior.pollBehavior(\n context,\n since,\n until\n );\n envelopes.push(\n ...behaviorSignals.map((signal) =>\n behaviorToEnvelope(context.id, signal, this.clock)\n )\n );\n }\n return envelopes;\n }\n\n private async flushProposals(\n context: RegenerationContext,\n proposals: SpecChangeProposal[]\n ): Promise<void> {\n for (const proposal of proposals) {\n if (proposal.signalIds.length === 0) continue;\n await this.options.sink.submit(context, proposal);\n // allow event loop to breathe when large volumes\n if (proposals.length > 10) {\n await delay(0);\n }\n }\n }\n}\n\n\n\n\n\n\n"],"mappings":"gJAwBA,IAAa,EAAb,KAAgC,CAC9B,SACA,SAA4B,IAAI,IAChC,MACA,QAAkB,GAClB,aACA,cACA,MAEA,YAAY,EAA8C,CAOxD,GAP2B,KAAA,QAAA,EAC3B,KAAK,SAAW,IAAI,IAClB,EAAQ,SAAS,IAAK,GAAQ,CAAC,EAAI,GAAI,EAAI,CAAC,CAC7C,CACD,KAAK,aAAe,EAAQ,gBAAkB,IAC9C,KAAK,cAAgB,EAAQ,iBAAmB,IAChD,KAAK,MAAQ,EAAQ,YAAgB,IAAI,MACrC,KAAK,QAAQ,MAAM,SAAW,EAChC,MAAU,MAAM,gDAAgD,CAIpE,OAAQ,CACF,KAAK,UACT,KAAK,QAAU,GACV,KAAK,MAAM,CAChB,KAAK,MAAQ,gBAAkB,CACxB,KAAK,MAAM,EACf,KAAK,aAAa,EAGvB,MAAO,CACA,KAAK,UACV,KAAK,QAAU,GACf,AAEE,KAAK,SADL,cAAc,KAAK,MAAM,CACZ,IAAA,KAIjB,MAAM,SAAyB,CAC7B,MAAM,KAAK,MAAM,CAGnB,MAAc,MAAsB,CAClC,IAAM,EAAM,KAAK,OAAO,CAClB,EAAe,IAAI,KAAK,EAAI,SAAS,CAAG,KAAK,cAAc,CACjE,IAAK,IAAM,KAAW,KAAK,SAAS,QAAQ,CAAE,CAC5C,IAAM,EAAO,KAAK,SAAS,IAAI,EAAQ,GAAG,EAAI,EAC9C,MAAM,KAAK,gBAAgB,EAAS,EAAM,EAAI,CAC9C,KAAK,SAAS,IAAI,EAAQ,GAAI,EAAI,EAItC,MAAc,gBACZ,EACA,EACA,EACe,CACf,IAAM,EAAU,MAAM,KAAK,eAAe,EAAS,EAAO,EAAM,CAC5D,KAAQ,SAAW,EAEvB,IAAK,IAAM,KAAQ,KAAK,QAAQ,MAAO,CACrC,IAAIC,EAAkC,EAAE,CACxC,GAAI,CACF,EAAY,MAAM,EAAK,SAAS,EAAS,EAAQ,OAC1C,EAAO,CAEd,QAAQ,MACN,sBAAsB,EAAK,GAAG,SAC9B,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC,CAC1D,CACD,SAEF,MAAM,KAAK,eAAe,EAAS,EAAU,EAIjD,MAAc,eACZ,EACA,EACA,EAC8B,CAC9B,IAAMC,EAAiC,EAAE,CACnC,CAAE,YAAa,KAAK,QAC1B,GAAI,EAAS,UAAW,CACtB,IAAM,EAAmB,MAAM,EAAS,UAAU,cAChD,EACA,EACA,EACD,CACD,EAAU,KACR,GAAG,EAAiB,IAAK,GACvB,EAAoB,EAAQ,GAAI,EAAQ,KAAK,MAAM,CACpD,CACF,CAEH,GAAI,EAAS,OAAQ,CACnB,IAAM,EAAe,MAAM,EAAS,OAAO,WACzC,EACA,EACA,EACD,CACD,EAAU,KACR,GAAG,EAAa,IAAK,GACnB,EAAgB,EAAQ,GAAI,EAAQ,KAAK,MAAM,CAChD,CACF,CAEH,GAAI,EAAS,SAAU,CACrB,IAAM,EAAkB,MAAM,EAAS,SAAS,aAC9C,EACA,EACA,EACD,CACD,EAAU,KACR,GAAG,EAAgB,IAAK,GACtB,EAAmB,EAAQ,GAAI,EAAQ,KAAK,MAAM,CACnD,CACF,CAEH,OAAO,EAGT,MAAc,eACZ,EACA,EACe,CACf,IAAK,IAAM,KAAY,EACjB,EAAS,UAAU,SAAW,IAClC,MAAM,KAAK,QAAQ,KAAK,OAAO,EAAS,EAAS,CAE7C,EAAU,OAAS,IACrB,MAAMC,EAAM,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sinks.js","names":["executor: ProposalExecutor","options: ExecutorSinkOptions"],"sources":["../../src/regenerator/sinks.ts"],"sourcesContent":["import type { ProposalSink, RegenerationContext, SpecChangeProposal } from './types';\nimport { ProposalExecutor } from './executor';\nimport type { ProposalExecutionResult } from './executor';\n\nexport interface ExecutorResultPayload {\n context: RegenerationContext;\n proposal: SpecChangeProposal;\n result: ProposalExecutionResult;\n}\n\nexport interface ExecutorSinkLogger {\n info?: (message: string, meta?: Record<string, unknown>) => void;\n error?: (message: string, error: Error, meta?: Record<string, unknown>) => void;\n}\n\nexport interface ExecutorSinkOptions {\n dryRun?: boolean;\n onResult?: (payload: ExecutorResultPayload) => void | Promise<void>;\n logger?: ExecutorSinkLogger;\n}\n\nexport class ExecutorProposalSink implements ProposalSink {\n constructor(\n private readonly executor: ProposalExecutor,\n private readonly options: ExecutorSinkOptions = {}\n ) {}\n\n async submit(\n context: RegenerationContext,\n proposal: SpecChangeProposal\n ): Promise<void> {\n const dryRun = this.options.dryRun ?? false;\n try {\n const result = await this.executor.execute(context, proposal, { dryRun });\n if (this.options.logger?.info) {\n this.options.logger.info('[regenerator] proposal executed', {\n proposalId: proposal.id,\n contextId: context.id,\n status: result.status,\n });\n }\n if (this.options.onResult) {\n await this.options.onResult({ context, proposal, result });\n }\n } catch (error) {\n if (this.options.logger?.error) {\n this.options.logger.error(\n '[regenerator] proposal execution failed',\n error instanceof Error ? error : new Error(String(error)),\n { proposalId: proposal.id, contextId: context.id }\n );\n }\n throw error instanceof Error ? error : new Error(String(error));\n }\n }\n}\n\n\n\n\n"],"mappings":"AAqBA,IAAa,EAAb,KAA0D,CACxD,YACE,EACA,EAAgD,EAAE,CAClD,CAFiB,KAAA,SAAA,EACA,KAAA,QAAA,EAGnB,MAAM,OACJ,EACA,EACe,CACf,IAAM,EAAS,KAAK,QAAQ,QAAU,GACtC,GAAI,CACF,IAAM,EAAS,MAAM,KAAK,SAAS,QAAQ,EAAS,EAAU,CAAE,SAAQ,CAAC,CACrE,KAAK,QAAQ,QAAQ,MACvB,KAAK,QAAQ,OAAO,KAAK,kCAAmC,CAC1D,WAAY,EAAS,GACrB,UAAW,EAAQ,GACnB,OAAQ,EAAO,OAChB,CAAC,CAEA,KAAK,QAAQ,UACf,MAAM,KAAK,QAAQ,SAAS,CAAE,UAAS,WAAU,SAAQ,CAAC,OAErD,EAAO,CAQd,MAPI,KAAK,QAAQ,QAAQ,OACvB,KAAK,QAAQ,OAAO,MAClB,0CACA,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC,CACzD,CAAE,WAAY,EAAS,GAAI,UAAW,EAAQ,GAAI,CACnD,CAEG,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"sinks.js","names":["executor: ProposalExecutor","options: ExecutorSinkOptions"],"sources":["../../src/regenerator/sinks.ts"],"sourcesContent":["import type { ProposalSink, RegenerationContext, SpecChangeProposal } from './types';\nimport { ProposalExecutor } from './executor';\nimport type { ProposalExecutionResult } from './executor';\n\nexport interface ExecutorResultPayload {\n context: RegenerationContext;\n proposal: SpecChangeProposal;\n result: ProposalExecutionResult;\n}\n\nexport interface ExecutorSinkLogger {\n info?: (message: string, meta?: Record<string, unknown>) => void;\n error?: (message: string, error: Error, meta?: Record<string, unknown>) => void;\n}\n\nexport interface ExecutorSinkOptions {\n dryRun?: boolean;\n onResult?: (payload: ExecutorResultPayload) => void | Promise<void>;\n logger?: ExecutorSinkLogger;\n}\n\nexport class ExecutorProposalSink implements ProposalSink {\n constructor(\n private readonly executor: ProposalExecutor,\n private readonly options: ExecutorSinkOptions = {}\n ) {}\n\n async submit(\n context: RegenerationContext,\n proposal: SpecChangeProposal\n ): Promise<void> {\n const dryRun = this.options.dryRun ?? false;\n try {\n const result = await this.executor.execute(context, proposal, { dryRun });\n if (this.options.logger?.info) {\n this.options.logger.info('[regenerator] proposal executed', {\n proposalId: proposal.id,\n contextId: context.id,\n status: result.status,\n });\n }\n if (this.options.onResult) {\n await this.options.onResult({ context, proposal, result });\n }\n } catch (error) {\n if (this.options.logger?.error) {\n this.options.logger.error(\n '[regenerator] proposal execution failed',\n error instanceof Error ? error : new Error(String(error)),\n { proposalId: proposal.id, contextId: context.id }\n );\n }\n throw error instanceof Error ? error : new Error(String(error));\n }\n }\n}\n\n\n\n\n\n\n"],"mappings":"AAqBA,IAAa,EAAb,KAA0D,CACxD,YACE,EACA,EAAgD,EAAE,CAClD,CAFiB,KAAA,SAAA,EACA,KAAA,QAAA,EAGnB,MAAM,OACJ,EACA,EACe,CACf,IAAM,EAAS,KAAK,QAAQ,QAAU,GACtC,GAAI,CACF,IAAM,EAAS,MAAM,KAAK,SAAS,QAAQ,EAAS,EAAU,CAAE,SAAQ,CAAC,CACrE,KAAK,QAAQ,QAAQ,MACvB,KAAK,QAAQ,OAAO,KAAK,kCAAmC,CAC1D,WAAY,EAAS,GACrB,UAAW,EAAQ,GACnB,OAAQ,EAAO,OAChB,CAAC,CAEA,KAAK,QAAQ,UACf,MAAM,KAAK,QAAQ,SAAS,CAAE,UAAS,WAAU,SAAQ,CAAC,OAErD,EAAO,CAQd,MAPI,KAAK,QAAQ,QAAQ,OACvB,KAAK,QAAQ,OAAO,MAClB,0CACA,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC,CACzD,CAAE,WAAY,EAAS,GAAI,UAAW,EAAQ,GAAI,CACnD,CAEG,aAAiB,MAAQ,EAAY,MAAM,OAAO,EAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../src/regenerator/utils.ts"],"sourcesContent":["import type {\n BehaviorSignal,\n BehaviorSignalEnvelope,\n ErrorSignal,\n ErrorSignalEnvelope,\n TelemetrySignal,\n TelemetrySignalEnvelope,\n} from './types';\n\ntype Clock = () => Date;\n\nexport function telemetryToEnvelope(\n contextId: string,\n signal: TelemetrySignal,\n clock: Clock\n): TelemetrySignalEnvelope {\n return {\n type: 'telemetry',\n contextId,\n signal: normalizeTelemetryDates(signal, clock),\n };\n}\n\nexport function errorToEnvelope(\n contextId: string,\n signal: ErrorSignal,\n clock: Clock\n): ErrorSignalEnvelope {\n return {\n type: 'error',\n contextId,\n signal: normalizeErrorDates(signal, clock),\n };\n}\n\nexport function behaviorToEnvelope(\n contextId: string,\n signal: BehaviorSignal,\n clock: Clock\n): BehaviorSignalEnvelope {\n return {\n type: 'behavior',\n contextId,\n signal: normalizeBehaviorDates(signal, clock),\n };\n}\n\nfunction normalizeTelemetryDates(\n signal: TelemetrySignal,\n clock: Clock\n): TelemetrySignal {\n return {\n ...signal,\n windowStart: toDate(signal.windowStart, clock),\n windowEnd: toDate(signal.windowEnd, clock),\n };\n}\n\nfunction normalizeErrorDates(\n signal: ErrorSignal,\n clock: Clock\n): ErrorSignal {\n return {\n ...signal,\n occurredAt: toDate(signal.occurredAt, clock),\n };\n}\n\nfunction normalizeBehaviorDates(\n signal: BehaviorSignal,\n clock: Clock\n): BehaviorSignal {\n return {\n ...signal,\n windowStart: toDate(signal.windowStart, clock),\n windowEnd: toDate(signal.windowEnd, clock),\n };\n}\n\nfunction toDate(value: Date | string, clock: Clock): Date {\n if (value instanceof Date) return value;\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return clock();\n }\n return parsed;\n}\n\n\n\n\n"],"mappings":"AAWA,SAAgB,EACd,EACA,EACA,EACyB,CACzB,MAAO,CACL,KAAM,YACN,YACA,OAAQ,EAAwB,EAAQ,EAAM,CAC/C,CAGH,SAAgB,EACd,EACA,EACA,EACqB,CACrB,MAAO,CACL,KAAM,QACN,YACA,OAAQ,EAAoB,EAAQ,EAAM,CAC3C,CAGH,SAAgB,EACd,EACA,EACA,EACwB,CACxB,MAAO,CACL,KAAM,WACN,YACA,OAAQ,EAAuB,EAAQ,EAAM,CAC9C,CAGH,SAAS,EACP,EACA,EACiB,CACjB,MAAO,CACL,GAAG,EACH,YAAa,EAAO,EAAO,YAAa,EAAM,CAC9C,UAAW,EAAO,EAAO,UAAW,EAAM,CAC3C,CAGH,SAAS,EACP,EACA,EACa,CACb,MAAO,CACL,GAAG,EACH,WAAY,EAAO,EAAO,WAAY,EAAM,CAC7C,CAGH,SAAS,EACP,EACA,EACgB,CAChB,MAAO,CACL,GAAG,EACH,YAAa,EAAO,EAAO,YAAa,EAAM,CAC9C,UAAW,EAAO,EAAO,UAAW,EAAM,CAC3C,CAGH,SAAS,EAAO,EAAsB,EAAoB,CACxD,GAAI,aAAiB,KAAM,OAAO,EAClC,IAAM,EAAS,IAAI,KAAK,EAAM,CAI9B,OAHI,OAAO,MAAM,EAAO,SAAS,CAAC,CACzB,GAAO,CAET"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../src/regenerator/utils.ts"],"sourcesContent":["import type {\n BehaviorSignal,\n BehaviorSignalEnvelope,\n ErrorSignal,\n ErrorSignalEnvelope,\n TelemetrySignal,\n TelemetrySignalEnvelope,\n} from './types';\n\ntype Clock = () => Date;\n\nexport function telemetryToEnvelope(\n contextId: string,\n signal: TelemetrySignal,\n clock: Clock\n): TelemetrySignalEnvelope {\n return {\n type: 'telemetry',\n contextId,\n signal: normalizeTelemetryDates(signal, clock),\n };\n}\n\nexport function errorToEnvelope(\n contextId: string,\n signal: ErrorSignal,\n clock: Clock\n): ErrorSignalEnvelope {\n return {\n type: 'error',\n contextId,\n signal: normalizeErrorDates(signal, clock),\n };\n}\n\nexport function behaviorToEnvelope(\n contextId: string,\n signal: BehaviorSignal,\n clock: Clock\n): BehaviorSignalEnvelope {\n return {\n type: 'behavior',\n contextId,\n signal: normalizeBehaviorDates(signal, clock),\n };\n}\n\nfunction normalizeTelemetryDates(\n signal: TelemetrySignal,\n clock: Clock\n): TelemetrySignal {\n return {\n ...signal,\n windowStart: toDate(signal.windowStart, clock),\n windowEnd: toDate(signal.windowEnd, clock),\n };\n}\n\nfunction normalizeErrorDates(\n signal: ErrorSignal,\n clock: Clock\n): ErrorSignal {\n return {\n ...signal,\n occurredAt: toDate(signal.occurredAt, clock),\n };\n}\n\nfunction normalizeBehaviorDates(\n signal: BehaviorSignal,\n clock: Clock\n): BehaviorSignal {\n return {\n ...signal,\n windowStart: toDate(signal.windowStart, clock),\n windowEnd: toDate(signal.windowEnd, clock),\n };\n}\n\nfunction toDate(value: Date | string, clock: Clock): Date {\n if (value instanceof Date) return value;\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return clock();\n }\n return parsed;\n}\n\n\n\n\n\n\n"],"mappings":"AAWA,SAAgB,EACd,EACA,EACA,EACyB,CACzB,MAAO,CACL,KAAM,YACN,YACA,OAAQ,EAAwB,EAAQ,EAAM,CAC/C,CAGH,SAAgB,EACd,EACA,EACA,EACqB,CACrB,MAAO,CACL,KAAM,QACN,YACA,OAAQ,EAAoB,EAAQ,EAAM,CAC3C,CAGH,SAAgB,EACd,EACA,EACA,EACwB,CACxB,MAAO,CACL,KAAM,WACN,YACA,OAAQ,EAAuB,EAAQ,EAAM,CAC9C,CAGH,SAAS,EACP,EACA,EACiB,CACjB,MAAO,CACL,GAAG,EACH,YAAa,EAAO,EAAO,YAAa,EAAM,CAC9C,UAAW,EAAO,EAAO,UAAW,EAAM,CAC3C,CAGH,SAAS,EACP,EACA,EACa,CACb,MAAO,CACL,GAAG,EACH,WAAY,EAAO,EAAO,WAAY,EAAM,CAC7C,CAGH,SAAS,EACP,EACA,EACgB,CAChB,MAAO,CACL,GAAG,EACH,YAAa,EAAO,EAAO,YAAa,EAAM,CAC9C,UAAW,EAAO,EAAO,UAAW,EAAM,CAC3C,CAGH,SAAS,EAAO,EAAsB,EAAoB,CACxD,GAAI,aAAiB,KAAM,OAAO,EAClC,IAAM,EAAS,IAAI,KAAK,EAAM,CAI9B,OAHI,OAAO,MAAM,EAAO,SAAS,CAAC,CACzB,GAAO,CAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use server";import{
|
|
1
|
+
"use server";import{t as e}from"../graphql-federation/dist/index.js";import{GraphQLSchema as t,printSchema as n}from"graphql";const r=async(t,r)=>{let i=await import(`fs`),a=await import(`path`),o=n(t),s=e(t),c=a.join(r,`../schema.graphql`),l=a.join(r,`../schema.subgraph.graphql`);i.writeFileSync(c,o),console.log(`Schema exported to ${c}`),i.writeFileSync(l,s),console.log(`Subgraph exported to ${l}`)};export{r as exportContractsToGraphQLSchema};
|
|
2
2
|
//# sourceMappingURL=graphql-schema-export.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-schema-export.js","names":[],"sources":["../../src/server/graphql-schema-export.ts"],"sourcesContent":["'use server';\n\nimport { GraphQLSchema, printSchema } from 'graphql';\nimport { toSubgraphSDL } from '@lssm/lib.graphql-federation';\n\nexport const exportContractsToGraphQLSchema = async (\n schema: GraphQLSchema,\n outputPathDir: string\n) => {\n const fs = await import('fs');\n const path = await import('path');\n\n const schemaString = printSchema(schema);\n const subgraphString = toSubgraphSDL(schema);\n const outputPath = path.join(outputPathDir, '../schema.graphql');\n const subgraphPath = path.join(outputPathDir, '../schema.subgraph.graphql');\n\n fs.writeFileSync(outputPath, schemaString);\n console.log(`Schema exported to ${outputPath}`);\n fs.writeFileSync(subgraphPath, subgraphString);\n console.log(`Subgraph exported to ${subgraphPath}`);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphql-schema-export.js","names":["toSubgraphSDL"],"sources":["../../src/server/graphql-schema-export.ts"],"sourcesContent":["'use server';\n\nimport { GraphQLSchema, printSchema } from 'graphql';\nimport { toSubgraphSDL } from '@lssm/lib.graphql-federation';\n\nexport const exportContractsToGraphQLSchema = async (\n schema: GraphQLSchema,\n outputPathDir: string\n) => {\n const fs = await import('fs');\n const path = await import('path');\n\n const schemaString = printSchema(schema);\n const subgraphString = toSubgraphSDL(schema);\n const outputPath = path.join(outputPathDir, '../schema.graphql');\n const subgraphPath = path.join(outputPathDir, '../schema.subgraph.graphql');\n\n fs.writeFileSync(outputPath, schemaString);\n console.log(`Schema exported to ${outputPath}`);\n fs.writeFileSync(subgraphPath, subgraphString);\n console.log(`Subgraph exported to ${subgraphPath}`);\n};\n"],"mappings":"8HAKA,MAAa,EAAiC,MAC5C,EACA,IACG,CACH,IAAM,EAAK,MAAM,OAAO,MAClB,EAAO,MAAM,OAAO,QAEpB,EAAe,EAAY,EAAO,CAClC,EAAiBA,EAAc,EAAO,CACtC,EAAa,EAAK,KAAK,EAAe,oBAAoB,CAC1D,EAAe,EAAK,KAAK,EAAe,6BAA6B,CAE3E,EAAG,cAAc,EAAY,EAAa,CAC1C,QAAQ,IAAI,sBAAsB,IAAa,CAC/C,EAAG,cAAc,EAAc,EAAe,CAC9C,QAAQ,IAAI,wBAAwB,IAAe"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.contracts",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.4",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "bun build:bundle && bun build:types",
|
|
6
6
|
"build:bundle": "tsdown",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"stripe": "^19.1.0",
|
|
31
31
|
"postmark": "^4.0.4",
|
|
32
32
|
"twilio": "^5.10.5",
|
|
33
|
-
"@lssm/lib.schema": "^1.7.
|
|
33
|
+
"@lssm/lib.schema": "^1.7.4",
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.20.1",
|
|
35
35
|
"mcp-handler": "^1.0.2",
|
|
36
36
|
"zod": "^4.1.5"
|
|
@@ -225,5 +225,176 @@
|
|
|
225
225
|
"./workflow/state": "./dist/workflow/state.js",
|
|
226
226
|
"./workflow/validation": "./dist/workflow/validation.js",
|
|
227
227
|
"./*": "./*"
|
|
228
|
+
},
|
|
229
|
+
"publishConfig": {
|
|
230
|
+
"exports": {
|
|
231
|
+
".": "./dist/index.js",
|
|
232
|
+
"./app-config": "./dist/app-config/index.js",
|
|
233
|
+
"./app-config/branding": "./dist/app-config/branding.js",
|
|
234
|
+
"./app-config/contracts": "./dist/app-config/contracts.js",
|
|
235
|
+
"./app-config/events": "./dist/app-config/events.js",
|
|
236
|
+
"./app-config/lifecycle": "./dist/app-config/lifecycle.js",
|
|
237
|
+
"./app-config/lifecycle-contracts": "./dist/app-config/lifecycle-contracts.js",
|
|
238
|
+
"./app-config/runtime": "./dist/app-config/runtime.js",
|
|
239
|
+
"./app-config/spec": "./dist/app-config/spec.js",
|
|
240
|
+
"./app-config/validation": "./dist/app-config/validation.js",
|
|
241
|
+
"./capabilities": "./dist/capabilities.js",
|
|
242
|
+
"./capabilities/openbanking": "./dist/capabilities/openbanking.js",
|
|
243
|
+
"./client": "./dist/client/index.js",
|
|
244
|
+
"./client/react": "./dist/client/react/index.js",
|
|
245
|
+
"./client/react/drivers/rn-reusables": "./dist/client/react/drivers/rn-reusables.js",
|
|
246
|
+
"./client/react/drivers/shadcn": "./dist/client/react/drivers/shadcn.js",
|
|
247
|
+
"./client/react/feature-render": "./dist/client/react/feature-render.js",
|
|
248
|
+
"./client/react/form-render": "./dist/client/react/form-render.js",
|
|
249
|
+
"./contracts-adapter-hydration": "./dist/contracts-adapter-hydration.js",
|
|
250
|
+
"./contracts-adapter-input": "./dist/contracts-adapter-input.js",
|
|
251
|
+
"./data-views": "./dist/data-views.js",
|
|
252
|
+
"./events": "./dist/events.js",
|
|
253
|
+
"./experiments/evaluator": "./dist/experiments/evaluator.js",
|
|
254
|
+
"./experiments/spec": "./dist/experiments/spec.js",
|
|
255
|
+
"./features": "./dist/features.js",
|
|
256
|
+
"./forms": "./dist/forms.js",
|
|
257
|
+
"./install": "./dist/install.js",
|
|
258
|
+
"./integrations": "./dist/integrations/index.js",
|
|
259
|
+
"./integrations/binding": "./dist/integrations/binding.js",
|
|
260
|
+
"./integrations/connection": "./dist/integrations/connection.js",
|
|
261
|
+
"./integrations/contracts": "./dist/integrations/contracts.js",
|
|
262
|
+
"./integrations/health": "./dist/integrations/health.js",
|
|
263
|
+
"./integrations/openbanking/contracts": "./dist/integrations/openbanking/contracts/index.js",
|
|
264
|
+
"./integrations/openbanking/contracts/accounts": "./dist/integrations/openbanking/contracts/accounts.js",
|
|
265
|
+
"./integrations/openbanking/contracts/balances": "./dist/integrations/openbanking/contracts/balances.js",
|
|
266
|
+
"./integrations/openbanking/contracts/transactions": "./dist/integrations/openbanking/contracts/transactions.js",
|
|
267
|
+
"./integrations/openbanking/guards": "./dist/integrations/openbanking/guards.js",
|
|
268
|
+
"./integrations/openbanking/models": "./dist/integrations/openbanking/models.js",
|
|
269
|
+
"./integrations/openbanking/telemetry": "./dist/integrations/openbanking/telemetry.js",
|
|
270
|
+
"./integrations/providers": "./dist/integrations/providers/index.js",
|
|
271
|
+
"./integrations/providers/calendar": "./dist/integrations/providers/calendar.js",
|
|
272
|
+
"./integrations/providers/elevenlabs": "./dist/integrations/providers/elevenlabs.js",
|
|
273
|
+
"./integrations/providers/email": "./dist/integrations/providers/email.js",
|
|
274
|
+
"./integrations/providers/embedding": "./dist/integrations/providers/embedding.js",
|
|
275
|
+
"./integrations/providers/gcs-storage": "./dist/integrations/providers/gcs-storage.js",
|
|
276
|
+
"./integrations/providers/gmail": "./dist/integrations/providers/gmail.js",
|
|
277
|
+
"./integrations/providers/google-calendar": "./dist/integrations/providers/google-calendar.js",
|
|
278
|
+
"./integrations/providers/impls": "./dist/integrations/providers/impls/index.js",
|
|
279
|
+
"./integrations/providers/impls/elevenlabs-voice": "./dist/integrations/providers/impls/elevenlabs-voice.js",
|
|
280
|
+
"./integrations/providers/impls/gcs-storage": "./dist/integrations/providers/impls/gcs-storage.js",
|
|
281
|
+
"./integrations/providers/impls/gmail-inbound": "./dist/integrations/providers/impls/gmail-inbound.js",
|
|
282
|
+
"./integrations/providers/impls/gmail-outbound": "./dist/integrations/providers/impls/gmail-outbound.js",
|
|
283
|
+
"./integrations/providers/impls/google-calendar": "./dist/integrations/providers/impls/google-calendar.js",
|
|
284
|
+
"./integrations/providers/impls/mistral-embedding": "./dist/integrations/providers/impls/mistral-embedding.js",
|
|
285
|
+
"./integrations/providers/impls/mistral-llm": "./dist/integrations/providers/impls/mistral-llm.js",
|
|
286
|
+
"./integrations/providers/impls/postmark-email": "./dist/integrations/providers/impls/postmark-email.js",
|
|
287
|
+
"./integrations/providers/impls/powens-client": "./dist/integrations/providers/impls/powens-client.js",
|
|
288
|
+
"./integrations/providers/impls/powens-openbanking": "./dist/integrations/providers/impls/powens-openbanking.js",
|
|
289
|
+
"./integrations/providers/impls/provider-factory": "./dist/integrations/providers/impls/provider-factory.js",
|
|
290
|
+
"./integrations/providers/impls/qdrant-vector": "./dist/integrations/providers/impls/qdrant-vector.js",
|
|
291
|
+
"./integrations/providers/impls/stripe-payments": "./dist/integrations/providers/impls/stripe-payments.js",
|
|
292
|
+
"./integrations/providers/impls/twilio-sms": "./dist/integrations/providers/impls/twilio-sms.js",
|
|
293
|
+
"./integrations/providers/llm": "./dist/integrations/providers/llm.js",
|
|
294
|
+
"./integrations/providers/mistral": "./dist/integrations/providers/mistral.js",
|
|
295
|
+
"./integrations/providers/openbanking": "./dist/integrations/providers/openbanking.js",
|
|
296
|
+
"./integrations/providers/payments": "./dist/integrations/providers/payments.js",
|
|
297
|
+
"./integrations/providers/postmark": "./dist/integrations/providers/postmark.js",
|
|
298
|
+
"./integrations/providers/powens": "./dist/integrations/providers/powens.js",
|
|
299
|
+
"./integrations/providers/qdrant": "./dist/integrations/providers/qdrant.js",
|
|
300
|
+
"./integrations/providers/sms": "./dist/integrations/providers/sms.js",
|
|
301
|
+
"./integrations/providers/storage": "./dist/integrations/providers/storage.js",
|
|
302
|
+
"./integrations/providers/stripe": "./dist/integrations/providers/stripe.js",
|
|
303
|
+
"./integrations/providers/twilio-sms": "./dist/integrations/providers/twilio-sms.js",
|
|
304
|
+
"./integrations/providers/vector-store": "./dist/integrations/providers/vector-store.js",
|
|
305
|
+
"./integrations/providers/voice": "./dist/integrations/providers/voice.js",
|
|
306
|
+
"./integrations/runtime": "./dist/integrations/runtime.js",
|
|
307
|
+
"./integrations/secrets": "./dist/integrations/secrets/index.js",
|
|
308
|
+
"./integrations/secrets/env-secret-provider": "./dist/integrations/secrets/env-secret-provider.js",
|
|
309
|
+
"./integrations/secrets/gcp-secret-manager": "./dist/integrations/secrets/gcp-secret-manager.js",
|
|
310
|
+
"./integrations/secrets/manager": "./dist/integrations/secrets/manager.js",
|
|
311
|
+
"./integrations/secrets/provider": "./dist/integrations/secrets/provider.js",
|
|
312
|
+
"./integrations/spec": "./dist/integrations/spec.js",
|
|
313
|
+
"./jobs": "./dist/jobs/index.js",
|
|
314
|
+
"./jobs/gcp-cloud-tasks": "./dist/jobs/gcp-cloud-tasks.js",
|
|
315
|
+
"./jobs/gcp-pubsub": "./dist/jobs/gcp-pubsub.js",
|
|
316
|
+
"./jobs/handlers": "./dist/jobs/handlers/index.js",
|
|
317
|
+
"./jobs/handlers/gmail-sync-handler": "./dist/jobs/handlers/gmail-sync-handler.js",
|
|
318
|
+
"./jobs/handlers/storage-document-handler": "./dist/jobs/handlers/storage-document-handler.js",
|
|
319
|
+
"./jobs/memory-queue": "./dist/jobs/memory-queue.js",
|
|
320
|
+
"./jobs/queue": "./dist/jobs/queue.js",
|
|
321
|
+
"./jsonschema": "./dist/jsonschema.js",
|
|
322
|
+
"./knowledge": "./dist/knowledge/index.js",
|
|
323
|
+
"./knowledge/binding": "./dist/knowledge/binding.js",
|
|
324
|
+
"./knowledge/contracts": "./dist/knowledge/contracts.js",
|
|
325
|
+
"./knowledge/ingestion": "./dist/knowledge/ingestion/index.js",
|
|
326
|
+
"./knowledge/ingestion/document-processor": "./dist/knowledge/ingestion/document-processor.js",
|
|
327
|
+
"./knowledge/ingestion/embedding-service": "./dist/knowledge/ingestion/embedding-service.js",
|
|
328
|
+
"./knowledge/ingestion/gmail-adapter": "./dist/knowledge/ingestion/gmail-adapter.js",
|
|
329
|
+
"./knowledge/ingestion/storage-adapter": "./dist/knowledge/ingestion/storage-adapter.js",
|
|
330
|
+
"./knowledge/ingestion/vector-indexer": "./dist/knowledge/ingestion/vector-indexer.js",
|
|
331
|
+
"./knowledge/query": "./dist/knowledge/query/index.js",
|
|
332
|
+
"./knowledge/query/service": "./dist/knowledge/query/service.js",
|
|
333
|
+
"./knowledge/runtime": "./dist/knowledge/runtime.js",
|
|
334
|
+
"./knowledge/source": "./dist/knowledge/source.js",
|
|
335
|
+
"./knowledge/spaces": "./dist/knowledge/spaces/index.js",
|
|
336
|
+
"./knowledge/spaces/email-threads": "./dist/knowledge/spaces/email-threads.js",
|
|
337
|
+
"./knowledge/spaces/financial-docs": "./dist/knowledge/spaces/financial-docs.js",
|
|
338
|
+
"./knowledge/spaces/financial-overview": "./dist/knowledge/spaces/financial-overview.js",
|
|
339
|
+
"./knowledge/spaces/product-canon": "./dist/knowledge/spaces/product-canon.js",
|
|
340
|
+
"./knowledge/spaces/support-faq": "./dist/knowledge/spaces/support-faq.js",
|
|
341
|
+
"./knowledge/spaces/uploaded-docs": "./dist/knowledge/spaces/uploaded-docs.js",
|
|
342
|
+
"./knowledge/spec": "./dist/knowledge/spec.js",
|
|
343
|
+
"./markdown": "./dist/markdown.js",
|
|
344
|
+
"./migrations": "./dist/migrations.js",
|
|
345
|
+
"./onboarding-base": "./dist/onboarding-base.js",
|
|
346
|
+
"./ownership": "./dist/ownership.js",
|
|
347
|
+
"./policy/engine": "./dist/policy/engine.js",
|
|
348
|
+
"./policy/opa-adapter": "./dist/policy/opa-adapter.js",
|
|
349
|
+
"./policy/spec": "./dist/policy/spec.js",
|
|
350
|
+
"./presentations": "./dist/presentations.js",
|
|
351
|
+
"./presentations.backcompat": "./dist/presentations.backcompat.js",
|
|
352
|
+
"./presentations.v2": "./dist/presentations.v2.js",
|
|
353
|
+
"./prompt": "./dist/prompt.js",
|
|
354
|
+
"./promptRegistry": "./dist/promptRegistry.js",
|
|
355
|
+
"./regenerator": "./dist/regenerator/index.js",
|
|
356
|
+
"./regenerator/adapters": "./dist/regenerator/adapters.js",
|
|
357
|
+
"./regenerator/executor": "./dist/regenerator/executor.js",
|
|
358
|
+
"./regenerator/service": "./dist/regenerator/service.js",
|
|
359
|
+
"./regenerator/sinks": "./dist/regenerator/sinks.js",
|
|
360
|
+
"./regenerator/types": "./dist/regenerator/types.js",
|
|
361
|
+
"./regenerator/utils": "./dist/regenerator/utils.js",
|
|
362
|
+
"./registry": "./dist/registry.js",
|
|
363
|
+
"./resources": "./dist/resources.js",
|
|
364
|
+
"./server": "./dist/server/index.js",
|
|
365
|
+
"./server/graphql-pothos": "./dist/server/graphql-pothos.js",
|
|
366
|
+
"./server/graphql-schema-export": "./dist/server/graphql-schema-export.js",
|
|
367
|
+
"./server/provider-mcp": "./dist/server/provider-mcp.js",
|
|
368
|
+
"./server/rest-elysia": "./dist/server/rest-elysia.js",
|
|
369
|
+
"./server/rest-express": "./dist/server/rest-express.js",
|
|
370
|
+
"./server/rest-generic": "./dist/server/rest-generic.js",
|
|
371
|
+
"./server/rest-next-app": "./dist/server/rest-next-app.js",
|
|
372
|
+
"./server/rest-next-mcp": "./dist/server/rest-next-mcp.js",
|
|
373
|
+
"./server/rest-next-pages": "./dist/server/rest-next-pages.js",
|
|
374
|
+
"./spec": "./dist/spec.js",
|
|
375
|
+
"./telemetry": "./dist/telemetry/index.js",
|
|
376
|
+
"./telemetry/anomaly": "./dist/telemetry/anomaly.js",
|
|
377
|
+
"./telemetry/spec": "./dist/telemetry/spec.js",
|
|
378
|
+
"./telemetry/tracker": "./dist/telemetry/tracker.js",
|
|
379
|
+
"./tests": "./dist/tests/index.js",
|
|
380
|
+
"./tests/runner": "./dist/tests/runner.js",
|
|
381
|
+
"./tests/spec": "./dist/tests/spec.js",
|
|
382
|
+
"./themes": "./dist/themes.js",
|
|
383
|
+
"./translations/catalog": "./dist/translations/catalog.js",
|
|
384
|
+
"./translations/tenant": "./dist/translations/tenant.js",
|
|
385
|
+
"./types": "./dist/types.js",
|
|
386
|
+
"./types/all": "./dist/types/all.js",
|
|
387
|
+
"./workflow": "./dist/workflow/index.js",
|
|
388
|
+
"./workflow/adapters": "./dist/workflow/adapters/index.js",
|
|
389
|
+
"./workflow/adapters/db-adapter": "./dist/workflow/adapters/db-adapter.js",
|
|
390
|
+
"./workflow/adapters/file-adapter": "./dist/workflow/adapters/file-adapter.js",
|
|
391
|
+
"./workflow/adapters/memory-store": "./dist/workflow/adapters/memory-store.js",
|
|
392
|
+
"./workflow/expression": "./dist/workflow/expression.js",
|
|
393
|
+
"./workflow/runner": "./dist/workflow/runner.js",
|
|
394
|
+
"./workflow/spec": "./dist/workflow/spec.js",
|
|
395
|
+
"./workflow/state": "./dist/workflow/state.js",
|
|
396
|
+
"./workflow/validation": "./dist/workflow/validation.js",
|
|
397
|
+
"./*": "./*"
|
|
398
|
+
}
|
|
228
399
|
}
|
|
229
400
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../graphql-federation/src/index.ts"],"sourcesContent":["import { type SchemaTypes } from '@pothos/core';\nimport '@pothos/plugin-federation';\nimport { printSubgraphSchema } from '@apollo/subgraph';\nimport type { GraphQLSchema } from 'graphql';\n\nexport function toSubgraphSDL(schema: GraphQLSchema) {\n return printSubgraphSchema(schema);\n}\n\nexport function withEntityObject<T extends SchemaTypes>(\n builder: PothosSchemaTypes.SchemaBuilder<T>,\n name: string,\n keyFields: string[],\n fields: (t: any) => Record<string, any>,\n resolveReference: (ref: any, ctx: any) => Promise<any> | any\n) {\n const ref = (builder as any).objectRef(name);\n ref.implement({\n fields,\n });\n (builder as any).entity(name, {\n key: keyFields.join(' '),\n resolveReference,\n });\n return ref;\n}\n"],"mappings":"yFAKA,SAAgB,EAAc,EAAuB,CACnD,OAAO,EAAoB,EAAO"}
|