@contractspec/example.integration-stripe 3.7.19 → 3.7.21

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.
@@ -1,46 +1,47 @@
1
- $ contractspec-bun-build prebuild
2
- $ bun run build:bundle && bun run build:types
3
- $ contractspec-bun-build transpile
4
- [contractspec-bun-build] transpile target=bun root=src entries=10 noBundle=false
5
- Bundled 10 modules in 12ms
6
-
7
- ./blueprint.js 2.43 KB (entry point)
8
- ./index.js 8.33 KB (entry point)
9
- ./tenant.js 0.99 KB (entry point)
10
- ./connection.sample.js 2.12 KB (entry point)
11
- docs/index.js 1.41 KB (entry point)
12
- docs/integration-stripe.docblock.js 1.41 KB (entry point)
13
- ./example.js 0.79 KB (entry point)
14
- ./integration-stripe.feature.js 3.32 KB (entry point)
15
- ./workflow.js 1.1 KB (entry point)
16
- ./integration.js 1.73 KB (entry point)
17
-
18
- [contractspec-bun-build] transpile target=node root=src entries=10 noBundle=false
19
- Bundled 10 modules in 27ms
20
-
21
- ./blueprint.js 2.42 KB (entry point)
22
- ./index.js 8.30 KB (entry point)
23
- ./tenant.js 0.98 KB (entry point)
24
- ./connection.sample.js 2.12 KB (entry point)
25
- docs/index.js 1.39 KB (entry point)
26
- docs/integration-stripe.docblock.js 1.39 KB (entry point)
27
- ./example.js 0.78 KB (entry point)
28
- ./integration-stripe.feature.js 3.31 KB (entry point)
29
- ./workflow.js 1.1 KB (entry point)
30
- ./integration.js 1.72 KB (entry point)
31
-
32
- [contractspec-bun-build] transpile target=browser root=src entries=10 noBundle=false
33
- Bundled 10 modules in 16ms
34
-
35
- ./blueprint.js 2.42 KB (entry point)
36
- ./index.js 8.30 KB (entry point)
37
- ./tenant.js 0.98 KB (entry point)
38
- ./connection.sample.js 2.12 KB (entry point)
39
- docs/index.js 1.39 KB (entry point)
40
- docs/integration-stripe.docblock.js 1.39 KB (entry point)
41
- ./example.js 0.78 KB (entry point)
42
- ./integration-stripe.feature.js 3.31 KB (entry point)
43
- ./workflow.js 1.1 KB (entry point)
44
- ./integration.js 1.72 KB (entry point)
45
-
46
- $ contractspec-bun-build types
1
+
2
+ $ contractspec-bun-build prebuild
3
+ $ bun run build:bundle && bun run build:types
4
+ $ contractspec-bun-build transpile
5
+ [contractspec-bun-build] transpile target=bun root=src entries=10 noBundle=false
6
+ Bundled 10 modules in 31ms
7
+
8
+ ./blueprint.js 2.43 KB (entry point)
9
+ ./index.js 8.22 KB (entry point)
10
+ ./tenant.js 0.99 KB (entry point)
11
+ ./connection.sample.js 2.12 KB (entry point)
12
+ docs/index.js 1.41 KB (entry point)
13
+ docs/integration-stripe.docblock.js 1.41 KB (entry point)
14
+ ./example.js 0.68 KB (entry point)
15
+ ./integration-stripe.feature.js 3.33 KB (entry point)
16
+ ./workflow.js 1.1 KB (entry point)
17
+ ./integration.js 1.73 KB (entry point)
18
+
19
+ [contractspec-bun-build] transpile target=node root=src entries=10 noBundle=false
20
+ Bundled 10 modules in 13ms
21
+
22
+ ./blueprint.js 2.42 KB (entry point)
23
+ ./index.js 8.20 KB (entry point)
24
+ ./tenant.js 0.98 KB (entry point)
25
+ ./connection.sample.js 2.12 KB (entry point)
26
+ docs/index.js 1.39 KB (entry point)
27
+ docs/integration-stripe.docblock.js 1.39 KB (entry point)
28
+ ./example.js 0.67 KB (entry point)
29
+ ./integration-stripe.feature.js 3.32 KB (entry point)
30
+ ./workflow.js 1.1 KB (entry point)
31
+ ./integration.js 1.72 KB (entry point)
32
+
33
+ [contractspec-bun-build] transpile target=browser root=src entries=10 noBundle=false
34
+ Bundled 10 modules in 14ms
35
+
36
+ ./blueprint.js 2.42 KB (entry point)
37
+ ./index.js 8.20 KB (entry point)
38
+ ./tenant.js 0.98 KB (entry point)
39
+ ./connection.sample.js 2.12 KB (entry point)
40
+ docs/index.js 1.39 KB (entry point)
41
+ docs/integration-stripe.docblock.js 1.39 KB (entry point)
42
+ ./example.js 0.67 KB (entry point)
43
+ ./integration-stripe.feature.js 3.32 KB (entry point)
44
+ ./workflow.js 1.1 KB (entry point)
45
+ ./integration.js 1.72 KB (entry point)
46
+
47
+ $ contractspec-bun-build types
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @contractspec/example.integration-stripe
2
2
 
3
+ ## 3.7.21
4
+
5
+ ### Patch Changes
6
+
7
+ - chore: auto-bump internal dependents
8
+ - Updated dependencies because of chore: auto-bump internal dependents
9
+ - Updated dependencies because of Add FormSpec layout hints, semantic field rendering, and portable text/textarea input-group addons.
10
+ - Updated dependencies because of Add ThemeSpec light/dark modes and a design-system Tailwind bridge for CSS variables, presets, CSS text, and OKLCH color pass-through.
11
+ - Updated dependencies because of Add a canonical typed result system for ContractSpec success and failure propagation across operations, workflows, jobs, server adapters, MCP, GraphQL, and React clients.
12
+ - @contractspec/lib.contracts-integrations@3.8.13
13
+ - @contractspec/lib.contracts-spec@5.5.0
14
+ - @contractspec/lib.schema@3.7.14
15
+
16
+ ## 3.7.20
17
+
18
+ ### Patch Changes
19
+
20
+ - chore: auto-bump internal dependents
21
+ - Updated dependencies because of Add a family-aware ContractSpec Adoption Engine, expand contract authoring targets across CLI and VS Code tooling, and refresh release-facing schema and policy artifacts for downstream workspaces.
22
+ - Updated dependencies because of chore: auto-bump internal dependents
23
+ - Updated dependencies because of Improve app-config, theme, and feature authoring with explicit validation APIs, first-class theme discovery and scaffolding, and key-based app-config generation across contracts, workspace tooling, and the CLI.
24
+ - Updated dependencies because of Refresh root, package, website, and LLM-facing docs so Connect, Builder, release capsules, and the current contracts-spec export surface stay aligned.
25
+ - Updated dependencies because of Persist canonical knowledge payload text during indexing and align the retrieval/query docs with the corrected behavior.
26
+ - @contractspec/lib.contracts-spec@5.4.0
27
+ - @contractspec/lib.contracts-integrations@3.8.12
28
+
3
29
  ## 3.7.19
4
30
 
5
31
  ### Patch Changes
@@ -1 +1 @@
1
- import{defineExample as g}from"@contractspec/lib.contracts-spec";var h=g({meta:{key:"integration-stripe",version:"1.0.0",title:"Integration Stripe Payments",description:"Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",kind:"integration",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["stripe","payments","integration","blueprint","workflow"]},docs:{rootDocId:"docs.examples.integration-stripe",usageDocId:"docs.examples.integration-stripe.usage"},entrypoints:{packageName:"@contractspec/example.integration-stripe",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["markdown","specs"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),q=h;export{q as default};
1
+ import{defineExample as b}from"@contractspec/lib.contracts-spec/examples";var c=b({meta:{key:"examples.integration-stripe",version:"1.0.0",title:"Integration Stripe",description:"Integration example Stripe Payments (blueprint + workflow + tenant config).",kind:"template",visibility:"experimental",stability:"experimental",owners:["@contractspec-core"],tags:["package","examples","integration-stripe"]},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","specs"]},studio:{enabled:!1,installable:!1},mcp:{enabled:!1}},entrypoints:{packageName:"@contractspec/example.integration-stripe"}}),k=c;export{k as default,c as ExamplesIntegrationStripeExample};
@@ -1,4 +1,4 @@
1
- import{OwnersEnum as a,StabilityEnum as r,TagsEnum as i}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as p}from"@contractspec/lib.contracts-spec/workflow/spec";var t=p({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[a.PlatformCore],tags:[i.Marketplace,"stripe"],stability:r.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineAppConfig as s}from"@contractspec/lib.contracts-spec/app-config/spec";import{OwnersEnum as d,StabilityEnum as g,TagsEnum as v}from"@contractspec/lib.contracts-spec/ownership";var h=s({meta:{key:"artisan.payments.stripe",version:"1.0.0",appId:"artisan",title:"ArtisanOS Stripe Payments",description:"Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",domain:"payments",owners:[d.PlatformCore],tags:[v.Marketplace,"stripe","payments"],stability:g.Experimental},capabilities:{enabled:[{key:"payments.psp",version:"1.0.0"}]},integrationSlots:[{slotId:"primary-payments",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[{key:"payments.psp",version:"1.0.0"}],required:!0,description:"Primary card processor slot. Bind the tenant Stripe connection here."}],branding:{appNameKey:"artisan.payments.appName",assets:[{type:"logo",url:"https://cdn.artisanos.dev/branding/logo.png"},{type:"favicon",url:"https://cdn.artisanos.dev/branding/favicon.ico"}],colorTokens:{primary:"colors.brand.primary",secondary:"colors.brand.secondary"}},translationCatalog:{key:"artisan.payments.catalog",version:"1.0.0"},workflows:{collectPayment:{key:t.meta.key,version:t.meta.version}},notes:"Install this blueprint and pair it with the Stripe integration connection to enable card collection."});import{defineIntegration as m}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as x,StabilityEnum as I,TagsEnum as u}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as e,ScalarTypeEnum as o}from"@contractspec/lib.schema";var y=e({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:o.String_unsecure(),isOptional:!1},webhookEndpoint:{type:o.String_unsecure(),isOptional:!1}}}),A=e({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:o.String_unsecure(),isOptional:!1},webhookSecret:{type:o.String_unsecure(),isOptional:!1}}}),n=m({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[x.PlatformCore],tags:[u.Marketplace,"stripe","payments"],stability:I.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:y,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:A,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});var J={meta:{id:"conn-stripe-live",tenantId:"artisan-co",integrationKey:n.meta.key,integrationVersion:n.meta.version,label:"Stripe Production",environment:"production",createdAt:"2026-01-01T00:00:00.000Z",updatedAt:"2026-01-01T00:00:00.000Z"},ownershipMode:"managed",config:{accountId:"acct_xxx"},secretProvider:"vault",secretRef:"vault://integrations/artisan-co/conn-stripe-live",status:"connected"};import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var C=[{id:"docs.examples.integration-stripe",title:"Integration Example — Stripe Payments",summary:"How to wire IntegrationSpec/TenantAppConfig + blueprint + workflow to enable Stripe-backed payments.",kind:"reference",visibility:"public",route:"/docs/examples/integration-stripe",tags:["stripe","payments","integrations","example"],body:`## Included
1
+ import{OwnersEnum as e,StabilityEnum as a,TagsEnum as i}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as p}from"@contractspec/lib.contracts-spec/workflow/spec";var t=p({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[e.PlatformCore],tags:[i.Marketplace,"stripe"],stability:a.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineAppConfig as s}from"@contractspec/lib.contracts-spec/app-config/spec";import{OwnersEnum as d,StabilityEnum as v,TagsEnum as g}from"@contractspec/lib.contracts-spec/ownership";var c=s({meta:{key:"artisan.payments.stripe",version:"1.0.0",appId:"artisan",title:"ArtisanOS Stripe Payments",description:"Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",domain:"payments",owners:[d.PlatformCore],tags:[g.Marketplace,"stripe","payments"],stability:v.Experimental},capabilities:{enabled:[{key:"payments.psp",version:"1.0.0"}]},integrationSlots:[{slotId:"primary-payments",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[{key:"payments.psp",version:"1.0.0"}],required:!0,description:"Primary card processor slot. Bind the tenant Stripe connection here."}],branding:{appNameKey:"artisan.payments.appName",assets:[{type:"logo",url:"https://cdn.artisanos.dev/branding/logo.png"},{type:"favicon",url:"https://cdn.artisanos.dev/branding/favicon.ico"}],colorTokens:{primary:"colors.brand.primary",secondary:"colors.brand.secondary"}},translationCatalog:{key:"artisan.payments.catalog",version:"1.0.0"},workflows:{collectPayment:{key:t.meta.key,version:t.meta.version}},notes:"Install this blueprint and pair it with the Stripe integration connection to enable card collection."});import{defineIntegration as m}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as x,StabilityEnum as y,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as r,ScalarTypeEnum as o}from"@contractspec/lib.schema";var u=r({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:o.String_unsecure(),isOptional:!1},webhookEndpoint:{type:o.String_unsecure(),isOptional:!1}}}),I=r({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:o.String_unsecure(),isOptional:!1},webhookSecret:{type:o.String_unsecure(),isOptional:!1}}}),n=m({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[x.PlatformCore],tags:[A.Marketplace,"stripe","payments"],stability:y.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:u,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:I,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});var J={meta:{id:"conn-stripe-live",tenantId:"artisan-co",integrationKey:n.meta.key,integrationVersion:n.meta.version,label:"Stripe Production",environment:"production",createdAt:"2026-01-01T00:00:00.000Z",updatedAt:"2026-01-01T00:00:00.000Z"},ownershipMode:"managed",config:{accountId:"acct_xxx"},secretProvider:"vault",secretRef:"vault://integrations/artisan-co/conn-stripe-live",status:"connected"};import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var C=[{id:"docs.examples.integration-stripe",title:"Integration Example — Stripe Payments",summary:"How to wire IntegrationSpec/TenantAppConfig + blueprint + workflow to enable Stripe-backed payments.",kind:"reference",visibility:"public",route:"/docs/examples/integration-stripe",tags:["stripe","payments","integrations","example"],body:`## Included
2
2
  - App blueprint enabling \`payments.psp\` capability.
3
3
  - Workflow invoking Stripe operations (prepare → charge → confirm).
4
4
  - Tenant app config binding workflow to an IntegrationConnection.
@@ -12,4 +12,4 @@ import{OwnersEnum as a,StabilityEnum as r,TagsEnum as i}from"@contractspec/lib.c
12
12
 
13
13
  ## Guardrails
14
14
  - Never log secrets.
15
- - Keep payment semantics spec-defined; gate breaking changes behind flags.`}];f(C);import{defineExample as L}from"@contractspec/lib.contracts-spec";var N=L({meta:{key:"integration-stripe",version:"1.0.0",title:"Integration Stripe Payments",description:"Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",kind:"integration",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["stripe","payments","integration","blueprint","workflow"]},docs:{rootDocId:"docs.examples.integration-stripe",usageDocId:"docs.examples.integration-stripe.usage"},entrypoints:{packageName:"@contractspec/example.integration-stripe",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["markdown","specs"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),D=N;import{defineFeature as P}from"@contractspec/lib.contracts-spec";var T=P({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:n.meta.key,version:n.meta.version}],workflows:[{key:t.meta.key,version:t.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});var k={meta:{id:"tenant-config-artisan-stripe",tenantId:"artisan-co",appId:"artisan",blueprintName:"artisan.payments.stripe",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",status:"published",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},integrations:[{slotId:"primary-payments",connectionId:"conn-stripe-live",scope:{workflows:["collectPayment"],operations:["payments.stripe.chargeCard"]}}],knowledge:[],locales:{defaultLocale:"en",enabledLocales:["en","fr"]},translationOverrides:{entries:[{key:"artisan.payments.appName",locale:"en",value:"Artisan Payments Portal"}]},branding:{appName:{en:"Artisan Payments Portal"},assets:[{type:"logo",url:"https://tenant.artisanos.dev/logo.png"},{type:"logo-dark",url:"https://tenant.artisanos.dev/logo-dark.png"}],colors:{primary:"#F97316",secondary:"#1F2937"},customDomain:"pay.artisanos.dev"},notes:"Stripe connection bound for production payments."};export{J as stripeLiveConnection,D as example,t as collectPaymentWorkflow,k as artisanStripeTenantConfig,h as artisanStripeBlueprint,n as StripePaymentsIntegrationSpec,T as IntegrationStripeFeature};
15
+ - Keep payment semantics spec-defined; gate breaking changes behind flags.`}];f(C);import{defineExample as L}from"@contractspec/lib.contracts-spec/examples";var N=L({meta:{key:"examples.integration-stripe",version:"1.0.0",title:"Integration Stripe",description:"Integration example Stripe Payments (blueprint + workflow + tenant config).",kind:"template",visibility:"experimental",stability:"experimental",owners:["@contractspec-core"],tags:["package","examples","integration-stripe"]},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","specs"]},studio:{enabled:!1,installable:!1},mcp:{enabled:!1}},entrypoints:{packageName:"@contractspec/example.integration-stripe"}}),D=N;import{defineFeature as P}from"@contractspec/lib.contracts-spec/features";var l=P({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:n.meta.key,version:n.meta.version}],workflows:[{key:t.meta.key,version:t.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});var M={meta:{id:"tenant-config-artisan-stripe",tenantId:"artisan-co",appId:"artisan",blueprintName:"artisan.payments.stripe",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",status:"published",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},integrations:[{slotId:"primary-payments",connectionId:"conn-stripe-live",scope:{workflows:["collectPayment"],operations:["payments.stripe.chargeCard"]}}],knowledge:[],locales:{defaultLocale:"en",enabledLocales:["en","fr"]},translationOverrides:{entries:[{key:"artisan.payments.appName",locale:"en",value:"Artisan Payments Portal"}]},branding:{appName:{en:"Artisan Payments Portal"},assets:[{type:"logo",url:"https://tenant.artisanos.dev/logo.png"},{type:"logo-dark",url:"https://tenant.artisanos.dev/logo-dark.png"}],colors:{primary:"#F97316",secondary:"#1F2937"},customDomain:"pay.artisanos.dev"},notes:"Stripe connection bound for production payments."};export{J as stripeLiveConnection,D as example,t as collectPaymentWorkflow,M as artisanStripeTenantConfig,c as artisanStripeBlueprint,n as StripePaymentsIntegrationSpec,l as IntegrationStripeFeature,N as ExamplesIntegrationStripeExample};
@@ -1 +1 @@
1
- import{OwnersEnum as z,StabilityEnum as A,TagsEnum as B}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as D}from"@contractspec/lib.contracts-spec/workflow/spec";var q=D({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[z.PlatformCore],tags:[B.Marketplace,"stripe"],stability:A.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineIntegration as G}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as H,StabilityEnum as J,TagsEnum as K}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as x,ScalarTypeEnum as j}from"@contractspec/lib.schema";var L=x({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:j.String_unsecure(),isOptional:!1},webhookEndpoint:{type:j.String_unsecure(),isOptional:!1}}}),N=x({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:j.String_unsecure(),isOptional:!1},webhookSecret:{type:j.String_unsecure(),isOptional:!1}}}),v=G({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[H.PlatformCore],tags:[K.Marketplace,"stripe","payments"],stability:J.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:L,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:N,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});import{defineFeature as Q}from"@contractspec/lib.contracts-spec";var O=Q({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:v.meta.key,version:v.meta.version}],workflows:[{key:q.meta.key,version:q.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});export{O as IntegrationStripeFeature};
1
+ import{OwnersEnum as z,StabilityEnum as A,TagsEnum as B}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as D}from"@contractspec/lib.contracts-spec/workflow/spec";var q=D({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[z.PlatformCore],tags:[B.Marketplace,"stripe"],stability:A.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineIntegration as G}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as H,StabilityEnum as J,TagsEnum as K}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as x,ScalarTypeEnum as j}from"@contractspec/lib.schema";var L=x({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:j.String_unsecure(),isOptional:!1},webhookEndpoint:{type:j.String_unsecure(),isOptional:!1}}}),N=x({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:j.String_unsecure(),isOptional:!1},webhookSecret:{type:j.String_unsecure(),isOptional:!1}}}),v=G({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[H.PlatformCore],tags:[K.Marketplace,"stripe","payments"],stability:J.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:L,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:N,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});import{defineFeature as Q}from"@contractspec/lib.contracts-spec/features";var O=Q({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:v.meta.key,version:v.meta.version}],workflows:[{key:q.meta.key,version:q.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});export{O as IntegrationStripeFeature};
package/dist/example.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- declare const example: import("@contractspec/lib.contracts-spec").ExampleSpec;
2
- export default example;
1
+ declare const ExamplesIntegrationStripeExample: import("@contractspec/lib.contracts-spec").ExampleSpec;
2
+ export default ExamplesIntegrationStripeExample;
3
+ export { ExamplesIntegrationStripeExample };
package/dist/example.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{defineExample as g}from"@contractspec/lib.contracts-spec";var h=g({meta:{key:"integration-stripe",version:"1.0.0",title:"Integration \u2014 Stripe Payments",description:"Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",kind:"integration",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["stripe","payments","integration","blueprint","workflow"]},docs:{rootDocId:"docs.examples.integration-stripe",usageDocId:"docs.examples.integration-stripe.usage"},entrypoints:{packageName:"@contractspec/example.integration-stripe",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["markdown","specs"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),q=h;export{q as default};
2
+ import{defineExample as b}from"@contractspec/lib.contracts-spec/examples";var c=b({meta:{key:"examples.integration-stripe",version:"1.0.0",title:"Integration Stripe",description:"Integration example \u2013 Stripe Payments (blueprint + workflow + tenant config).",kind:"template",visibility:"experimental",stability:"experimental",owners:["@contractspec-core"],tags:["package","examples","integration-stripe"]},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","specs"]},studio:{enabled:!1,installable:!1},mcp:{enabled:!1}},entrypoints:{packageName:"@contractspec/example.integration-stripe"}}),k=c;export{k as default,c as ExamplesIntegrationStripeExample};
package/dist/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from './integration-stripe.feature';
6
6
  export * from './tenant';
7
7
  export * from './workflow';
8
8
  import './docs';
9
+ export * from './example';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{OwnersEnum as a,StabilityEnum as r,TagsEnum as i}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as p}from"@contractspec/lib.contracts-spec/workflow/spec";var t=p({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[a.PlatformCore],tags:[i.Marketplace,"stripe"],stability:r.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineAppConfig as s}from"@contractspec/lib.contracts-spec/app-config/spec";import{OwnersEnum as d,StabilityEnum as g,TagsEnum as v}from"@contractspec/lib.contracts-spec/ownership";var h=s({meta:{key:"artisan.payments.stripe",version:"1.0.0",appId:"artisan",title:"ArtisanOS Stripe Payments",description:"Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",domain:"payments",owners:[d.PlatformCore],tags:[v.Marketplace,"stripe","payments"],stability:g.Experimental},capabilities:{enabled:[{key:"payments.psp",version:"1.0.0"}]},integrationSlots:[{slotId:"primary-payments",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[{key:"payments.psp",version:"1.0.0"}],required:!0,description:"Primary card processor slot. Bind the tenant Stripe connection here."}],branding:{appNameKey:"artisan.payments.appName",assets:[{type:"logo",url:"https://cdn.artisanos.dev/branding/logo.png"},{type:"favicon",url:"https://cdn.artisanos.dev/branding/favicon.ico"}],colorTokens:{primary:"colors.brand.primary",secondary:"colors.brand.secondary"}},translationCatalog:{key:"artisan.payments.catalog",version:"1.0.0"},workflows:{collectPayment:{key:t.meta.key,version:t.meta.version}},notes:"Install this blueprint and pair it with the Stripe integration connection to enable card collection."});import{defineIntegration as m}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as x,StabilityEnum as I,TagsEnum as u}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as e,ScalarTypeEnum as o}from"@contractspec/lib.schema";var y=e({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:o.String_unsecure(),isOptional:!1},webhookEndpoint:{type:o.String_unsecure(),isOptional:!1}}}),A=e({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:o.String_unsecure(),isOptional:!1},webhookSecret:{type:o.String_unsecure(),isOptional:!1}}}),n=m({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[x.PlatformCore],tags:[u.Marketplace,"stripe","payments"],stability:I.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:y,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:A,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});var J={meta:{id:"conn-stripe-live",tenantId:"artisan-co",integrationKey:n.meta.key,integrationVersion:n.meta.version,label:"Stripe Production",environment:"production",createdAt:"2026-01-01T00:00:00.000Z",updatedAt:"2026-01-01T00:00:00.000Z"},ownershipMode:"managed",config:{accountId:"acct_xxx"},secretProvider:"vault",secretRef:"vault://integrations/artisan-co/conn-stripe-live",status:"connected"};import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var C=[{id:"docs.examples.integration-stripe",title:"Integration Example \u2014 Stripe Payments",summary:"How to wire IntegrationSpec/TenantAppConfig + blueprint + workflow to enable Stripe-backed payments.",kind:"reference",visibility:"public",route:"/docs/examples/integration-stripe",tags:["stripe","payments","integrations","example"],body:`## Included
2
+ import{OwnersEnum as e,StabilityEnum as a,TagsEnum as i}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as p}from"@contractspec/lib.contracts-spec/workflow/spec";var t=p({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[e.PlatformCore],tags:[i.Marketplace,"stripe"],stability:a.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineAppConfig as s}from"@contractspec/lib.contracts-spec/app-config/spec";import{OwnersEnum as d,StabilityEnum as v,TagsEnum as g}from"@contractspec/lib.contracts-spec/ownership";var c=s({meta:{key:"artisan.payments.stripe",version:"1.0.0",appId:"artisan",title:"ArtisanOS Stripe Payments",description:"Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",domain:"payments",owners:[d.PlatformCore],tags:[g.Marketplace,"stripe","payments"],stability:v.Experimental},capabilities:{enabled:[{key:"payments.psp",version:"1.0.0"}]},integrationSlots:[{slotId:"primary-payments",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[{key:"payments.psp",version:"1.0.0"}],required:!0,description:"Primary card processor slot. Bind the tenant Stripe connection here."}],branding:{appNameKey:"artisan.payments.appName",assets:[{type:"logo",url:"https://cdn.artisanos.dev/branding/logo.png"},{type:"favicon",url:"https://cdn.artisanos.dev/branding/favicon.ico"}],colorTokens:{primary:"colors.brand.primary",secondary:"colors.brand.secondary"}},translationCatalog:{key:"artisan.payments.catalog",version:"1.0.0"},workflows:{collectPayment:{key:t.meta.key,version:t.meta.version}},notes:"Install this blueprint and pair it with the Stripe integration connection to enable card collection."});import{defineIntegration as m}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as x,StabilityEnum as y,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as r,ScalarTypeEnum as o}from"@contractspec/lib.schema";var u=r({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:o.String_unsecure(),isOptional:!1},webhookEndpoint:{type:o.String_unsecure(),isOptional:!1}}}),I=r({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:o.String_unsecure(),isOptional:!1},webhookSecret:{type:o.String_unsecure(),isOptional:!1}}}),n=m({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[x.PlatformCore],tags:[A.Marketplace,"stripe","payments"],stability:y.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:u,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:I,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});var J={meta:{id:"conn-stripe-live",tenantId:"artisan-co",integrationKey:n.meta.key,integrationVersion:n.meta.version,label:"Stripe Production",environment:"production",createdAt:"2026-01-01T00:00:00.000Z",updatedAt:"2026-01-01T00:00:00.000Z"},ownershipMode:"managed",config:{accountId:"acct_xxx"},secretProvider:"vault",secretRef:"vault://integrations/artisan-co/conn-stripe-live",status:"connected"};import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var C=[{id:"docs.examples.integration-stripe",title:"Integration Example \u2014 Stripe Payments",summary:"How to wire IntegrationSpec/TenantAppConfig + blueprint + workflow to enable Stripe-backed payments.",kind:"reference",visibility:"public",route:"/docs/examples/integration-stripe",tags:["stripe","payments","integrations","example"],body:`## Included
3
3
  - App blueprint enabling \`payments.psp\` capability.
4
4
  - Workflow invoking Stripe operations (prepare \u2192 charge \u2192 confirm).
5
5
  - Tenant app config binding workflow to an IntegrationConnection.
@@ -13,4 +13,4 @@ import{OwnersEnum as a,StabilityEnum as r,TagsEnum as i}from"@contractspec/lib.c
13
13
 
14
14
  ## Guardrails
15
15
  - Never log secrets.
16
- - Keep payment semantics spec-defined; gate breaking changes behind flags.`}];f(C);import{defineExample as L}from"@contractspec/lib.contracts-spec";var N=L({meta:{key:"integration-stripe",version:"1.0.0",title:"Integration \u2014 Stripe Payments",description:"Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",kind:"integration",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["stripe","payments","integration","blueprint","workflow"]},docs:{rootDocId:"docs.examples.integration-stripe",usageDocId:"docs.examples.integration-stripe.usage"},entrypoints:{packageName:"@contractspec/example.integration-stripe",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["markdown","specs"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),D=N;import{defineFeature as P}from"@contractspec/lib.contracts-spec";var T=P({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:n.meta.key,version:n.meta.version}],workflows:[{key:t.meta.key,version:t.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});var k={meta:{id:"tenant-config-artisan-stripe",tenantId:"artisan-co",appId:"artisan",blueprintName:"artisan.payments.stripe",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",status:"published",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},integrations:[{slotId:"primary-payments",connectionId:"conn-stripe-live",scope:{workflows:["collectPayment"],operations:["payments.stripe.chargeCard"]}}],knowledge:[],locales:{defaultLocale:"en",enabledLocales:["en","fr"]},translationOverrides:{entries:[{key:"artisan.payments.appName",locale:"en",value:"Artisan Payments Portal"}]},branding:{appName:{en:"Artisan Payments Portal"},assets:[{type:"logo",url:"https://tenant.artisanos.dev/logo.png"},{type:"logo-dark",url:"https://tenant.artisanos.dev/logo-dark.png"}],colors:{primary:"#F97316",secondary:"#1F2937"},customDomain:"pay.artisanos.dev"},notes:"Stripe connection bound for production payments."};export{J as stripeLiveConnection,D as example,t as collectPaymentWorkflow,k as artisanStripeTenantConfig,h as artisanStripeBlueprint,n as StripePaymentsIntegrationSpec,T as IntegrationStripeFeature};
16
+ - Keep payment semantics spec-defined; gate breaking changes behind flags.`}];f(C);import{defineExample as L}from"@contractspec/lib.contracts-spec/examples";var N=L({meta:{key:"examples.integration-stripe",version:"1.0.0",title:"Integration Stripe",description:"Integration example \u2013 Stripe Payments (blueprint + workflow + tenant config).",kind:"template",visibility:"experimental",stability:"experimental",owners:["@contractspec-core"],tags:["package","examples","integration-stripe"]},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","specs"]},studio:{enabled:!1,installable:!1},mcp:{enabled:!1}},entrypoints:{packageName:"@contractspec/example.integration-stripe"}}),D=N;import{defineFeature as P}from"@contractspec/lib.contracts-spec/features";var l=P({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:n.meta.key,version:n.meta.version}],workflows:[{key:t.meta.key,version:t.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});var M={meta:{id:"tenant-config-artisan-stripe",tenantId:"artisan-co",appId:"artisan",blueprintName:"artisan.payments.stripe",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",status:"published",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},integrations:[{slotId:"primary-payments",connectionId:"conn-stripe-live",scope:{workflows:["collectPayment"],operations:["payments.stripe.chargeCard"]}}],knowledge:[],locales:{defaultLocale:"en",enabledLocales:["en","fr"]},translationOverrides:{entries:[{key:"artisan.payments.appName",locale:"en",value:"Artisan Payments Portal"}]},branding:{appName:{en:"Artisan Payments Portal"},assets:[{type:"logo",url:"https://tenant.artisanos.dev/logo.png"},{type:"logo-dark",url:"https://tenant.artisanos.dev/logo-dark.png"}],colors:{primary:"#F97316",secondary:"#1F2937"},customDomain:"pay.artisanos.dev"},notes:"Stripe connection bound for production payments."};export{J as stripeLiveConnection,D as example,t as collectPaymentWorkflow,M as artisanStripeTenantConfig,c as artisanStripeBlueprint,n as StripePaymentsIntegrationSpec,l as IntegrationStripeFeature,N as ExamplesIntegrationStripeExample};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{OwnersEnum as z,StabilityEnum as A,TagsEnum as B}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as D}from"@contractspec/lib.contracts-spec/workflow/spec";var q=D({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[z.PlatformCore],tags:[B.Marketplace,"stripe"],stability:A.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineIntegration as G}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as H,StabilityEnum as J,TagsEnum as K}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as x,ScalarTypeEnum as j}from"@contractspec/lib.schema";var L=x({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:j.String_unsecure(),isOptional:!1},webhookEndpoint:{type:j.String_unsecure(),isOptional:!1}}}),N=x({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:j.String_unsecure(),isOptional:!1},webhookSecret:{type:j.String_unsecure(),isOptional:!1}}}),v=G({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[H.PlatformCore],tags:[K.Marketplace,"stripe","payments"],stability:J.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:L,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:N,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});import{defineFeature as Q}from"@contractspec/lib.contracts-spec";var O=Q({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:v.meta.key,version:v.meta.version}],workflows:[{key:q.meta.key,version:q.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});export{O as IntegrationStripeFeature};
2
+ import{OwnersEnum as z,StabilityEnum as A,TagsEnum as B}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as D}from"@contractspec/lib.contracts-spec/workflow/spec";var q=D({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[z.PlatformCore],tags:[B.Marketplace,"stripe"],stability:A.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineIntegration as G}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as H,StabilityEnum as J,TagsEnum as K}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as x,ScalarTypeEnum as j}from"@contractspec/lib.schema";var L=x({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:j.String_unsecure(),isOptional:!1},webhookEndpoint:{type:j.String_unsecure(),isOptional:!1}}}),N=x({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:j.String_unsecure(),isOptional:!1},webhookSecret:{type:j.String_unsecure(),isOptional:!1}}}),v=G({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[H.PlatformCore],tags:[K.Marketplace,"stripe","payments"],stability:J.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:L,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:N,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});import{defineFeature as Q}from"@contractspec/lib.contracts-spec/features";var O=Q({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:v.meta.key,version:v.meta.version}],workflows:[{key:q.meta.key,version:q.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});export{O as IntegrationStripeFeature};
@@ -1 +1 @@
1
- import{defineExample as g}from"@contractspec/lib.contracts-spec";var h=g({meta:{key:"integration-stripe",version:"1.0.0",title:"Integration Stripe Payments",description:"Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",kind:"integration",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["stripe","payments","integration","blueprint","workflow"]},docs:{rootDocId:"docs.examples.integration-stripe",usageDocId:"docs.examples.integration-stripe.usage"},entrypoints:{packageName:"@contractspec/example.integration-stripe",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["markdown","specs"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),q=h;export{q as default};
1
+ import{defineExample as b}from"@contractspec/lib.contracts-spec/examples";var c=b({meta:{key:"examples.integration-stripe",version:"1.0.0",title:"Integration Stripe",description:"Integration example Stripe Payments (blueprint + workflow + tenant config).",kind:"template",visibility:"experimental",stability:"experimental",owners:["@contractspec-core"],tags:["package","examples","integration-stripe"]},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","specs"]},studio:{enabled:!1,installable:!1},mcp:{enabled:!1}},entrypoints:{packageName:"@contractspec/example.integration-stripe"}}),k=c;export{k as default,c as ExamplesIntegrationStripeExample};
@@ -1,4 +1,4 @@
1
- import{OwnersEnum as a,StabilityEnum as r,TagsEnum as i}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as p}from"@contractspec/lib.contracts-spec/workflow/spec";var t=p({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[a.PlatformCore],tags:[i.Marketplace,"stripe"],stability:r.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineAppConfig as s}from"@contractspec/lib.contracts-spec/app-config/spec";import{OwnersEnum as d,StabilityEnum as g,TagsEnum as v}from"@contractspec/lib.contracts-spec/ownership";var h=s({meta:{key:"artisan.payments.stripe",version:"1.0.0",appId:"artisan",title:"ArtisanOS Stripe Payments",description:"Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",domain:"payments",owners:[d.PlatformCore],tags:[v.Marketplace,"stripe","payments"],stability:g.Experimental},capabilities:{enabled:[{key:"payments.psp",version:"1.0.0"}]},integrationSlots:[{slotId:"primary-payments",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[{key:"payments.psp",version:"1.0.0"}],required:!0,description:"Primary card processor slot. Bind the tenant Stripe connection here."}],branding:{appNameKey:"artisan.payments.appName",assets:[{type:"logo",url:"https://cdn.artisanos.dev/branding/logo.png"},{type:"favicon",url:"https://cdn.artisanos.dev/branding/favicon.ico"}],colorTokens:{primary:"colors.brand.primary",secondary:"colors.brand.secondary"}},translationCatalog:{key:"artisan.payments.catalog",version:"1.0.0"},workflows:{collectPayment:{key:t.meta.key,version:t.meta.version}},notes:"Install this blueprint and pair it with the Stripe integration connection to enable card collection."});import{defineIntegration as m}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as x,StabilityEnum as I,TagsEnum as u}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as e,ScalarTypeEnum as o}from"@contractspec/lib.schema";var y=e({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:o.String_unsecure(),isOptional:!1},webhookEndpoint:{type:o.String_unsecure(),isOptional:!1}}}),A=e({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:o.String_unsecure(),isOptional:!1},webhookSecret:{type:o.String_unsecure(),isOptional:!1}}}),n=m({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[x.PlatformCore],tags:[u.Marketplace,"stripe","payments"],stability:I.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:y,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:A,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});var J={meta:{id:"conn-stripe-live",tenantId:"artisan-co",integrationKey:n.meta.key,integrationVersion:n.meta.version,label:"Stripe Production",environment:"production",createdAt:"2026-01-01T00:00:00.000Z",updatedAt:"2026-01-01T00:00:00.000Z"},ownershipMode:"managed",config:{accountId:"acct_xxx"},secretProvider:"vault",secretRef:"vault://integrations/artisan-co/conn-stripe-live",status:"connected"};import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var C=[{id:"docs.examples.integration-stripe",title:"Integration Example — Stripe Payments",summary:"How to wire IntegrationSpec/TenantAppConfig + blueprint + workflow to enable Stripe-backed payments.",kind:"reference",visibility:"public",route:"/docs/examples/integration-stripe",tags:["stripe","payments","integrations","example"],body:`## Included
1
+ import{OwnersEnum as e,StabilityEnum as a,TagsEnum as i}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as p}from"@contractspec/lib.contracts-spec/workflow/spec";var t=p({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[e.PlatformCore],tags:[i.Marketplace,"stripe"],stability:a.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineAppConfig as s}from"@contractspec/lib.contracts-spec/app-config/spec";import{OwnersEnum as d,StabilityEnum as v,TagsEnum as g}from"@contractspec/lib.contracts-spec/ownership";var c=s({meta:{key:"artisan.payments.stripe",version:"1.0.0",appId:"artisan",title:"ArtisanOS Stripe Payments",description:"Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",domain:"payments",owners:[d.PlatformCore],tags:[g.Marketplace,"stripe","payments"],stability:v.Experimental},capabilities:{enabled:[{key:"payments.psp",version:"1.0.0"}]},integrationSlots:[{slotId:"primary-payments",requiredCategory:"payments",allowedModes:["managed","byok"],requiredCapabilities:[{key:"payments.psp",version:"1.0.0"}],required:!0,description:"Primary card processor slot. Bind the tenant Stripe connection here."}],branding:{appNameKey:"artisan.payments.appName",assets:[{type:"logo",url:"https://cdn.artisanos.dev/branding/logo.png"},{type:"favicon",url:"https://cdn.artisanos.dev/branding/favicon.ico"}],colorTokens:{primary:"colors.brand.primary",secondary:"colors.brand.secondary"}},translationCatalog:{key:"artisan.payments.catalog",version:"1.0.0"},workflows:{collectPayment:{key:t.meta.key,version:t.meta.version}},notes:"Install this blueprint and pair it with the Stripe integration connection to enable card collection."});import{defineIntegration as m}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as x,StabilityEnum as y,TagsEnum as A}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as r,ScalarTypeEnum as o}from"@contractspec/lib.schema";var u=r({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:o.String_unsecure(),isOptional:!1},webhookEndpoint:{type:o.String_unsecure(),isOptional:!1}}}),I=r({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:o.String_unsecure(),isOptional:!1},webhookSecret:{type:o.String_unsecure(),isOptional:!1}}}),n=m({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[x.PlatformCore],tags:[A.Marketplace,"stripe","payments"],stability:y.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:u,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:I,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});var J={meta:{id:"conn-stripe-live",tenantId:"artisan-co",integrationKey:n.meta.key,integrationVersion:n.meta.version,label:"Stripe Production",environment:"production",createdAt:"2026-01-01T00:00:00.000Z",updatedAt:"2026-01-01T00:00:00.000Z"},ownershipMode:"managed",config:{accountId:"acct_xxx"},secretProvider:"vault",secretRef:"vault://integrations/artisan-co/conn-stripe-live",status:"connected"};import{registerDocBlocks as f}from"@contractspec/lib.contracts-spec/docs";var C=[{id:"docs.examples.integration-stripe",title:"Integration Example — Stripe Payments",summary:"How to wire IntegrationSpec/TenantAppConfig + blueprint + workflow to enable Stripe-backed payments.",kind:"reference",visibility:"public",route:"/docs/examples/integration-stripe",tags:["stripe","payments","integrations","example"],body:`## Included
2
2
  - App blueprint enabling \`payments.psp\` capability.
3
3
  - Workflow invoking Stripe operations (prepare → charge → confirm).
4
4
  - Tenant app config binding workflow to an IntegrationConnection.
@@ -12,4 +12,4 @@ import{OwnersEnum as a,StabilityEnum as r,TagsEnum as i}from"@contractspec/lib.c
12
12
 
13
13
  ## Guardrails
14
14
  - Never log secrets.
15
- - Keep payment semantics spec-defined; gate breaking changes behind flags.`}];f(C);import{defineExample as L}from"@contractspec/lib.contracts-spec";var N=L({meta:{key:"integration-stripe",version:"1.0.0",title:"Integration Stripe Payments",description:"Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",kind:"integration",visibility:"public",stability:"experimental",owners:["@platform.core"],tags:["stripe","payments","integration","blueprint","workflow"]},docs:{rootDocId:"docs.examples.integration-stripe",usageDocId:"docs.examples.integration-stripe.usage"},entrypoints:{packageName:"@contractspec/example.integration-stripe",docs:"./docs"},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["markdown","specs"]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}}),D=N;import{defineFeature as P}from"@contractspec/lib.contracts-spec";var T=P({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:n.meta.key,version:n.meta.version}],workflows:[{key:t.meta.key,version:t.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});var k={meta:{id:"tenant-config-artisan-stripe",tenantId:"artisan-co",appId:"artisan",blueprintName:"artisan.payments.stripe",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",status:"published",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},integrations:[{slotId:"primary-payments",connectionId:"conn-stripe-live",scope:{workflows:["collectPayment"],operations:["payments.stripe.chargeCard"]}}],knowledge:[],locales:{defaultLocale:"en",enabledLocales:["en","fr"]},translationOverrides:{entries:[{key:"artisan.payments.appName",locale:"en",value:"Artisan Payments Portal"}]},branding:{appName:{en:"Artisan Payments Portal"},assets:[{type:"logo",url:"https://tenant.artisanos.dev/logo.png"},{type:"logo-dark",url:"https://tenant.artisanos.dev/logo-dark.png"}],colors:{primary:"#F97316",secondary:"#1F2937"},customDomain:"pay.artisanos.dev"},notes:"Stripe connection bound for production payments."};export{J as stripeLiveConnection,D as example,t as collectPaymentWorkflow,k as artisanStripeTenantConfig,h as artisanStripeBlueprint,n as StripePaymentsIntegrationSpec,T as IntegrationStripeFeature};
15
+ - Keep payment semantics spec-defined; gate breaking changes behind flags.`}];f(C);import{defineExample as L}from"@contractspec/lib.contracts-spec/examples";var N=L({meta:{key:"examples.integration-stripe",version:"1.0.0",title:"Integration Stripe",description:"Integration example Stripe Payments (blueprint + workflow + tenant config).",kind:"template",visibility:"experimental",stability:"experimental",owners:["@contractspec-core"],tags:["package","examples","integration-stripe"]},surfaces:{templates:!0,sandbox:{enabled:!0,modes:["playground","specs"]},studio:{enabled:!1,installable:!1},mcp:{enabled:!1}},entrypoints:{packageName:"@contractspec/example.integration-stripe"}}),D=N;import{defineFeature as P}from"@contractspec/lib.contracts-spec/features";var l=P({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:n.meta.key,version:n.meta.version}],workflows:[{key:t.meta.key,version:t.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});var M={meta:{id:"tenant-config-artisan-stripe",tenantId:"artisan-co",appId:"artisan",blueprintName:"artisan.payments.stripe",blueprintVersion:"1.0.0",environment:"production",version:"1.0.0",status:"published",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()},integrations:[{slotId:"primary-payments",connectionId:"conn-stripe-live",scope:{workflows:["collectPayment"],operations:["payments.stripe.chargeCard"]}}],knowledge:[],locales:{defaultLocale:"en",enabledLocales:["en","fr"]},translationOverrides:{entries:[{key:"artisan.payments.appName",locale:"en",value:"Artisan Payments Portal"}]},branding:{appName:{en:"Artisan Payments Portal"},assets:[{type:"logo",url:"https://tenant.artisanos.dev/logo.png"},{type:"logo-dark",url:"https://tenant.artisanos.dev/logo-dark.png"}],colors:{primary:"#F97316",secondary:"#1F2937"},customDomain:"pay.artisanos.dev"},notes:"Stripe connection bound for production payments."};export{J as stripeLiveConnection,D as example,t as collectPaymentWorkflow,M as artisanStripeTenantConfig,c as artisanStripeBlueprint,n as StripePaymentsIntegrationSpec,l as IntegrationStripeFeature,N as ExamplesIntegrationStripeExample};
@@ -1 +1 @@
1
- import{OwnersEnum as z,StabilityEnum as A,TagsEnum as B}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as D}from"@contractspec/lib.contracts-spec/workflow/spec";var q=D({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[z.PlatformCore],tags:[B.Marketplace,"stripe"],stability:A.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineIntegration as G}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as H,StabilityEnum as J,TagsEnum as K}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as x,ScalarTypeEnum as j}from"@contractspec/lib.schema";var L=x({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:j.String_unsecure(),isOptional:!1},webhookEndpoint:{type:j.String_unsecure(),isOptional:!1}}}),N=x({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:j.String_unsecure(),isOptional:!1},webhookSecret:{type:j.String_unsecure(),isOptional:!1}}}),v=G({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[H.PlatformCore],tags:[K.Marketplace,"stripe","payments"],stability:J.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:L,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:N,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});import{defineFeature as Q}from"@contractspec/lib.contracts-spec";var O=Q({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:v.meta.key,version:v.meta.version}],workflows:[{key:q.meta.key,version:q.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});export{O as IntegrationStripeFeature};
1
+ import{OwnersEnum as z,StabilityEnum as A,TagsEnum as B}from"@contractspec/lib.contracts-spec/ownership";import{defineWorkflow as D}from"@contractspec/lib.contracts-spec/workflow/spec";var q=D({meta:{key:"integration-stripe.workflow.payment",version:"1.0.0",title:"Collect Card Payment",description:"Charge a customer using the tenant Stripe connection and record settlement details.",domain:"payments",owners:[z.PlatformCore],tags:[B.Marketplace,"stripe"],stability:A.Experimental},definition:{entryStepId:"prepare",steps:[{id:"prepare",type:"automation",label:"Prepare charge parameters",action:{operation:{key:"payments.prepareCharge",version:"1.0.0"}}},{id:"charge",type:"automation",label:"Charge card via Stripe",action:{operation:{key:"payments.stripe.chargeCard",version:"1.0.0"}}},{id:"confirm",type:"automation",label:"Confirm settlement",action:{operation:{key:"payments.recordSettlement",version:"1.0.0"}}}],transitions:[{from:"prepare",to:"charge"},{from:"charge",to:"confirm",condition:"output.success === true"}]}});import{defineIntegration as G}from"@contractspec/lib.contracts-integrations";import{OwnersEnum as H,StabilityEnum as J,TagsEnum as K}from"@contractspec/lib.contracts-spec/ownership";import{defineSchemaModel as x,ScalarTypeEnum as j}from"@contractspec/lib.schema";var L=x({name:"StripePaymentsIntegrationConfig",description:"Managed configuration required to connect a Stripe account.",fields:{accountId:{type:j.String_unsecure(),isOptional:!1},webhookEndpoint:{type:j.String_unsecure(),isOptional:!1}}}),N=x({name:"StripePaymentsIntegrationSecret",description:"Secret material stored out-of-band for the Stripe provider.",fields:{apiKey:{type:j.String_unsecure(),isOptional:!1},webhookSecret:{type:j.String_unsecure(),isOptional:!1}}}),v=G({meta:{key:"integration-stripe.integration.psp",version:"1.0.0",title:"Stripe Payments Integration",description:"Integration contract for managed or BYOK Stripe card processing.",domain:"payments",category:"payments",owners:[H.PlatformCore],tags:[K.Marketplace,"stripe","payments"],stability:J.Experimental},supportedModes:["managed","byok"],capabilities:{provides:[{key:"payments.psp",version:"1.0.0"}]},configSchema:{schema:L,example:{accountId:"acct_demo_artisan",webhookEndpoint:"https://pay.artisanos.dev/webhooks/stripe"}},secretSchema:{schema:N,example:{apiKey:"sk_live_redacted",webhookSecret:"whsec_redacted"}},healthCheck:{method:"ping",timeoutMs:5000},docsUrl:"https://docs.stripe.com",constraints:{rateLimit:{rpm:1000}},byokSetup:{setupInstructions:"Create a restricted API key and webhook endpoint, then bind the secret reference to the tenant connection.",requiredScopes:["charges:write","customers:read","webhooks:write"]}});import{defineFeature as Q}from"@contractspec/lib.contracts-spec/features";var O=Q({meta:{key:"integration-stripe",version:"1.0.0",title:"Stripe Payments Integration",description:"Stripe payments integration with blueprint, workflow, and tenant configuration",domain:"integration",owners:["@integration-team"],tags:["integration","stripe","payments"],stability:"experimental"},integrations:[{key:v.meta.key,version:v.meta.version}],workflows:[{key:q.meta.key,version:q.meta.version}],docs:["docs.examples.integration-stripe","docs.examples.integration-stripe.usage"]});export{O as IntegrationStripeFeature};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/example.integration-stripe",
3
- "version": "3.7.19",
3
+ "version": "3.7.21",
4
4
  "description": "Integration example – Stripe Payments (blueprint + workflow + tenant config).",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -93,13 +93,13 @@
93
93
  },
94
94
  "dependencies": {
95
95
  "@contractspec/lib.schema": "3.7.14",
96
- "@contractspec/lib.contracts-spec": "5.3.0",
97
- "@contractspec/lib.contracts-integrations": "3.8.11"
96
+ "@contractspec/lib.contracts-spec": "5.5.0",
97
+ "@contractspec/lib.contracts-integrations": "3.8.13"
98
98
  },
99
99
  "devDependencies": {
100
100
  "@contractspec/tool.typescript": "3.7.13",
101
101
  "typescript": "^5.9.3",
102
- "@contractspec/tool.bun": "3.7.14"
102
+ "@contractspec/tool.bun": "3.7.15"
103
103
  },
104
104
  "publishConfig": {
105
105
  "access": "public",
package/src/example.ts CHANGED
@@ -1,32 +1,28 @@
1
- import { defineExample } from '@contractspec/lib.contracts-spec';
1
+ import { defineExample } from '@contractspec/lib.contracts-spec/examples';
2
2
 
3
- const example = defineExample({
3
+ const ExamplesIntegrationStripeExample = defineExample({
4
4
  meta: {
5
- key: 'integration-stripe',
5
+ key: 'examples.integration-stripe',
6
6
  version: '1.0.0',
7
- title: 'Integration Stripe Payments',
7
+ title: 'Integration Stripe',
8
8
  description:
9
- 'Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).',
10
- kind: 'integration',
11
- visibility: 'public',
9
+ 'Integration example Stripe Payments (blueprint + workflow + tenant config).',
10
+ kind: 'template',
11
+ visibility: 'experimental',
12
12
  stability: 'experimental',
13
- owners: ['@platform.core'],
14
- tags: ['stripe', 'payments', 'integration', 'blueprint', 'workflow'],
13
+ owners: ['@contractspec-core'],
14
+ tags: ['package', 'examples', 'integration-stripe'],
15
15
  },
16
- docs: {
17
- rootDocId: 'docs.examples.integration-stripe',
18
- usageDocId: 'docs.examples.integration-stripe.usage',
16
+ surfaces: {
17
+ templates: true,
18
+ sandbox: { enabled: true, modes: ['playground', 'specs'] },
19
+ studio: { enabled: false, installable: false },
20
+ mcp: { enabled: false },
19
21
  },
20
22
  entrypoints: {
21
23
  packageName: '@contractspec/example.integration-stripe',
22
- docs: './docs',
23
- },
24
- surfaces: {
25
- templates: true,
26
- sandbox: { enabled: true, modes: ['markdown', 'specs'] },
27
- studio: { enabled: true, installable: true },
28
- mcp: { enabled: true },
29
24
  },
30
25
  });
31
26
 
32
- export default example;
27
+ export default ExamplesIntegrationStripeExample;
28
+ export { ExamplesIntegrationStripeExample };
package/src/index.ts CHANGED
@@ -6,3 +6,5 @@ export * from './integration-stripe.feature';
6
6
  export * from './tenant';
7
7
  export * from './workflow';
8
8
  import './docs';
9
+
10
+ export * from './example';
@@ -1,4 +1,4 @@
1
- import { defineFeature } from '@contractspec/lib.contracts-spec';
1
+ import { defineFeature } from '@contractspec/lib.contracts-spec/features';
2
2
  import { StripePaymentsIntegrationSpec } from './integration';
3
3
  import { collectPaymentWorkflow } from './workflow';
4
4