@contractspec/example.integration-stripe 1.44.1 → 1.45.1
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/.turbo/turbo-build$colon$bundle.log +12 -12
- package/.turbo/turbo-build.log +12 -12
- package/CHANGELOG.md +35 -0
- package/dist/blueprint.js +6 -6
- package/dist/blueprint.js.map +1 -1
- package/dist/connection.sample.js +1 -1
- package/dist/connection.sample.js.map +1 -1
- package/dist/example.d.ts +3 -30
- package/dist/example.d.ts.map +1 -1
- package/dist/example.js +17 -12
- package/dist/example.js.map +1 -1
- package/dist/tenant.js +2 -2
- package/dist/tenant.js.map +1 -1
- package/dist/workflow.js +4 -4
- package/dist/workflow.js.map +1 -1
- package/package.json +5 -5
- package/src/blueprint.ts +9 -6
- package/src/connection.sample.ts +1 -1
- package/src/example.ts +16 -9
- package/src/tenant.ts +2 -2
- package/src/workflow.ts +4 -4
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -6,32 +6,32 @@ $ tsdown
|
|
|
6
6
|
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
7
7
|
[34mℹ[39m Build start
|
|
8
8
|
[34mℹ[39m Cleaning 28 files
|
|
9
|
-
[34mℹ[39m [2mdist/[22m[1mblueprint.js[22m [2m1.
|
|
9
|
+
[34mℹ[39m [2mdist/[22m[1mblueprint.js[22m [2m1.72 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
10
10
|
[34mℹ[39m [2mdist/[22m[1mdocs/integration-stripe.docblock.js[22m [2m1.59 kB[22m [2m│ gzip: 0.74 kB[22m
|
|
11
|
-
[34mℹ[39m [2mdist/[22m[1mworkflow.js[22m [2m1.
|
|
12
|
-
[34mℹ[39m [2mdist/[22m[1mtenant.js[22m [2m1.
|
|
13
|
-
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1mworkflow.js[22m [2m1.35 kB[22m [2m│ gzip: 0.57 kB[22m
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mtenant.js[22m [2m1.29 kB[22m [2m│ gzip: 0.63 kB[22m
|
|
13
|
+
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [2m1.00 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
14
14
|
[34mℹ[39m [2mdist/[22m[1mconnection.sample.js[22m [2m0.60 kB[22m [2m│ gzip: 0.35 kB[22m
|
|
15
15
|
[34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m0.44 kB[22m [2m│ gzip: 0.20 kB[22m
|
|
16
16
|
[34mℹ[39m [2mdist/[22m[1mdocs/index.js[22m [2m0.04 kB[22m [2m│ gzip: 0.06 kB[22m
|
|
17
|
-
[34mℹ[39m [2mdist/[22mblueprint.js.map [2m2.
|
|
18
|
-
[34mℹ[39m [2mdist/[22mworkflow.js.map [2m2.
|
|
19
|
-
[34mℹ[39m [2mdist/[22mtenant.js.map [2m2.
|
|
17
|
+
[34mℹ[39m [2mdist/[22mblueprint.js.map [2m2.74 kB[22m [2m│ gzip: 1.10 kB[22m
|
|
18
|
+
[34mℹ[39m [2mdist/[22mworkflow.js.map [2m2.24 kB[22m [2m│ gzip: 0.85 kB[22m
|
|
19
|
+
[34mℹ[39m [2mdist/[22mtenant.js.map [2m2.21 kB[22m [2m│ gzip: 0.98 kB[22m
|
|
20
20
|
[34mℹ[39m [2mdist/[22mdocs/integration-stripe.docblock.js.map [2m2.09 kB[22m [2m│ gzip: 0.93 kB[22m
|
|
21
|
-
[34mℹ[39m [2mdist/[22mexample.js.map [2m1.
|
|
21
|
+
[34mℹ[39m [2mdist/[22mexample.js.map [2m1.53 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
22
22
|
[34mℹ[39m [2mdist/[22mconnection.sample.js.map [2m1.03 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
23
23
|
[34mℹ[39m [2mdist/[22mconnection.sample.d.ts.map [2m0.15 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
24
|
-
[34mℹ[39m [2mdist/[22mexample.d.ts.map [2m0.14 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
25
24
|
[34mℹ[39m [2mdist/[22mblueprint.d.ts.map [2m0.13 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
26
25
|
[34mℹ[39m [2mdist/[22mworkflow.d.ts.map [2m0.13 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
26
|
+
[34mℹ[39m [2mdist/[22mexample.d.ts.map [2m0.12 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
27
27
|
[34mℹ[39m [2mdist/[22mtenant.d.ts.map [2m0.12 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
28
|
-
[34mℹ[39m [2mdist/[22m[32m[1mexample.d.ts[22m[39m [2m1.12 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
29
28
|
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.ts[22m[39m [2m0.39 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
30
29
|
[34mℹ[39m [2mdist/[22m[32m[1mconnection.sample.d.ts[22m[39m [2m0.28 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
31
30
|
[34mℹ[39m [2mdist/[22m[32m[1mblueprint.d.ts[22m[39m [2m0.25 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
32
31
|
[34mℹ[39m [2mdist/[22m[32m[1mtenant.d.ts[22m[39m [2m0.25 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
33
32
|
[34mℹ[39m [2mdist/[22m[32m[1mworkflow.d.ts[22m[39m [2m0.24 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
33
|
+
[34mℹ[39m [2mdist/[22m[32m[1mexample.d.ts[22m[39m [2m0.20 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
34
34
|
[34mℹ[39m [2mdist/[22m[32m[1mdocs/index.d.ts[22m[39m [2m0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
35
35
|
[34mℹ[39m [2mdist/[22m[32m[1mdocs/integration-stripe.docblock.d.ts[22m[39m [2m0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
36
|
-
[34mℹ[39m 27 files, total: 22.
|
|
37
|
-
[32m✔[39m Build complete in [
|
|
36
|
+
[34mℹ[39m 27 files, total: 22.16 kB
|
|
37
|
+
[32m✔[39m Build complete in [32m20274ms[39m
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -7,32 +7,32 @@ $ tsdown
|
|
|
7
7
|
[34mℹ[39m target: [34mesnext[39m
|
|
8
8
|
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
9
9
|
[34mℹ[39m Build start
|
|
10
|
-
[34mℹ[39m [2mdist/[22m[1mblueprint.js[22m [2m1.
|
|
10
|
+
[34mℹ[39m [2mdist/[22m[1mblueprint.js[22m [2m1.72 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
11
11
|
[34mℹ[39m [2mdist/[22m[1mdocs/integration-stripe.docblock.js[22m [2m1.59 kB[22m [2m│ gzip: 0.74 kB[22m
|
|
12
|
-
[34mℹ[39m [2mdist/[22m[1mworkflow.js[22m [2m1.
|
|
13
|
-
[34mℹ[39m [2mdist/[22m[1mtenant.js[22m [2m1.
|
|
14
|
-
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mworkflow.js[22m [2m1.35 kB[22m [2m│ gzip: 0.57 kB[22m
|
|
13
|
+
[34mℹ[39m [2mdist/[22m[1mtenant.js[22m [2m1.29 kB[22m [2m│ gzip: 0.63 kB[22m
|
|
14
|
+
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [2m1.00 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
15
15
|
[34mℹ[39m [2mdist/[22m[1mconnection.sample.js[22m [2m0.60 kB[22m [2m│ gzip: 0.35 kB[22m
|
|
16
16
|
[34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m0.44 kB[22m [2m│ gzip: 0.20 kB[22m
|
|
17
17
|
[34mℹ[39m [2mdist/[22m[1mdocs/index.js[22m [2m0.04 kB[22m [2m│ gzip: 0.06 kB[22m
|
|
18
|
-
[34mℹ[39m [2mdist/[22mblueprint.js.map [2m2.
|
|
19
|
-
[34mℹ[39m [2mdist/[22mworkflow.js.map [2m2.
|
|
20
|
-
[34mℹ[39m [2mdist/[22mtenant.js.map [2m2.
|
|
18
|
+
[34mℹ[39m [2mdist/[22mblueprint.js.map [2m2.74 kB[22m [2m│ gzip: 1.10 kB[22m
|
|
19
|
+
[34mℹ[39m [2mdist/[22mworkflow.js.map [2m2.24 kB[22m [2m│ gzip: 0.85 kB[22m
|
|
20
|
+
[34mℹ[39m [2mdist/[22mtenant.js.map [2m2.21 kB[22m [2m│ gzip: 0.98 kB[22m
|
|
21
21
|
[34mℹ[39m [2mdist/[22mdocs/integration-stripe.docblock.js.map [2m2.09 kB[22m [2m│ gzip: 0.93 kB[22m
|
|
22
|
-
[34mℹ[39m [2mdist/[22mexample.js.map [2m1.
|
|
22
|
+
[34mℹ[39m [2mdist/[22mexample.js.map [2m1.53 kB[22m [2m│ gzip: 0.73 kB[22m
|
|
23
23
|
[34mℹ[39m [2mdist/[22mconnection.sample.js.map [2m1.03 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
24
24
|
[34mℹ[39m [2mdist/[22mconnection.sample.d.ts.map [2m0.15 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
25
|
-
[34mℹ[39m [2mdist/[22mexample.d.ts.map [2m0.14 kB[22m [2m│ gzip: 0.13 kB[22m
|
|
26
25
|
[34mℹ[39m [2mdist/[22mblueprint.d.ts.map [2m0.13 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
27
26
|
[34mℹ[39m [2mdist/[22mworkflow.d.ts.map [2m0.13 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
27
|
+
[34mℹ[39m [2mdist/[22mexample.d.ts.map [2m0.12 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
28
28
|
[34mℹ[39m [2mdist/[22mtenant.d.ts.map [2m0.12 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
29
|
-
[34mℹ[39m [2mdist/[22m[32m[1mexample.d.ts[22m[39m [2m1.12 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
30
29
|
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.ts[22m[39m [2m0.39 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
31
30
|
[34mℹ[39m [2mdist/[22m[32m[1mconnection.sample.d.ts[22m[39m [2m0.28 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
32
31
|
[34mℹ[39m [2mdist/[22m[32m[1mblueprint.d.ts[22m[39m [2m0.25 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
33
32
|
[34mℹ[39m [2mdist/[22m[32m[1mtenant.d.ts[22m[39m [2m0.25 kB[22m [2m│ gzip: 0.17 kB[22m
|
|
34
33
|
[34mℹ[39m [2mdist/[22m[32m[1mworkflow.d.ts[22m[39m [2m0.24 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
34
|
+
[34mℹ[39m [2mdist/[22m[32m[1mexample.d.ts[22m[39m [2m0.20 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
35
35
|
[34mℹ[39m [2mdist/[22m[32m[1mdocs/index.d.ts[22m[39m [2m0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
36
36
|
[34mℹ[39m [2mdist/[22m[32m[1mdocs/integration-stripe.docblock.d.ts[22m[39m [2m0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
37
|
-
[34mℹ[39m 27 files, total: 22.
|
|
38
|
-
[32m✔[39m Build complete in [
|
|
37
|
+
[34mℹ[39m 27 files, total: 22.16 kB
|
|
38
|
+
[32m✔[39m Build complete in [32m19380ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# @contractspec/example.integration-stripe
|
|
2
2
|
|
|
3
|
+
## 1.45.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- feat: improve app config and examples contracts
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @contractspec/lib.contracts@1.45.1
|
|
10
|
+
- @contractspec/lib.schema@1.45.1
|
|
11
|
+
|
|
12
|
+
## 1.45.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- e73ca1d: feat: improve app config and examples contracts
|
|
17
|
+
feat: Contract layers support (features, examples, app-configs)
|
|
18
|
+
|
|
19
|
+
### New CLI Commands
|
|
20
|
+
- `contractspec list layers` - List all contract layers with filtering
|
|
21
|
+
|
|
22
|
+
### Enhanced Commands
|
|
23
|
+
- `contractspec ci` - New `layers` check category validates features/examples/config
|
|
24
|
+
- `contractspec doctor` - New `layers` health checks
|
|
25
|
+
- `contractspec integrity` - Now shows layer statistics
|
|
26
|
+
|
|
27
|
+
### New APIs
|
|
28
|
+
- `discoverLayers()` - Scan workspace for all layer files
|
|
29
|
+
- `scanExampleSource()` - Parse ExampleSpec from source code
|
|
30
|
+
- `isExampleFile()` - Check if file is an example spec
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- Updated dependencies [e73ca1d]
|
|
35
|
+
- @contractspec/lib.contracts@1.45.0
|
|
36
|
+
- @contractspec/lib.schema@1.45.0
|
|
37
|
+
|
|
3
38
|
## 1.44.1
|
|
4
39
|
|
|
5
40
|
### Patch Changes
|
package/dist/blueprint.js
CHANGED
|
@@ -4,7 +4,7 @@ import { OwnersEnum, StabilityEnum, TagsEnum } from "@contractspec/lib.contracts
|
|
|
4
4
|
const artisanStripeBlueprint = {
|
|
5
5
|
meta: {
|
|
6
6
|
key: "artisan.payments.stripe",
|
|
7
|
-
version: 1,
|
|
7
|
+
version: "1.0.0",
|
|
8
8
|
appId: "artisan",
|
|
9
9
|
title: "ArtisanOS Stripe Payments",
|
|
10
10
|
description: "Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.",
|
|
@@ -19,7 +19,7 @@ const artisanStripeBlueprint = {
|
|
|
19
19
|
},
|
|
20
20
|
capabilities: { enabled: [{
|
|
21
21
|
key: "payments.psp",
|
|
22
|
-
version: 1
|
|
22
|
+
version: "1.0.0"
|
|
23
23
|
}] },
|
|
24
24
|
integrationSlots: [{
|
|
25
25
|
slotId: "primary-payments",
|
|
@@ -27,7 +27,7 @@ const artisanStripeBlueprint = {
|
|
|
27
27
|
allowedModes: ["managed", "byok"],
|
|
28
28
|
requiredCapabilities: [{
|
|
29
29
|
key: "payments.psp",
|
|
30
|
-
version: 1
|
|
30
|
+
version: "1.0.0"
|
|
31
31
|
}],
|
|
32
32
|
required: true,
|
|
33
33
|
description: "Primary card processor slot. Bind the tenant Stripe connection here."
|
|
@@ -48,15 +48,15 @@ const artisanStripeBlueprint = {
|
|
|
48
48
|
},
|
|
49
49
|
translationCatalog: {
|
|
50
50
|
key: "artisan.payments.catalog",
|
|
51
|
-
version: 1
|
|
51
|
+
version: "1.0.0"
|
|
52
52
|
},
|
|
53
53
|
workflows: { collectPayment: {
|
|
54
54
|
key: "artisan.payments.collectPayment",
|
|
55
|
-
version: 1
|
|
55
|
+
version: "1.0.0"
|
|
56
56
|
} },
|
|
57
57
|
policies: [{
|
|
58
58
|
key: "artisan.payments.default",
|
|
59
|
-
version: 1
|
|
59
|
+
version: "1.0.0"
|
|
60
60
|
}],
|
|
61
61
|
notes: "Install this blueprint and pair it with the Stripe integration connection to enable card collection."
|
|
62
62
|
};
|
package/dist/blueprint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueprint.js","names":["artisanStripeBlueprint: AppBlueprintSpec"],"sources":["../src/blueprint.ts"],"sourcesContent":["import type { AppBlueprintSpec } from '@contractspec/lib.contracts/app-config/spec';\nimport {\n OwnersEnum,\n StabilityEnum,\n TagsEnum,\n} from '@contractspec/lib.contracts/ownership';\n\nexport const artisanStripeBlueprint: AppBlueprintSpec = {\n meta: {\n key: 'artisan.payments.stripe',\n version: 1,\n appId: 'artisan',\n title: 'ArtisanOS Stripe Payments',\n description:\n 'Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.',\n domain: 'payments',\n owners: [OwnersEnum.PlatformCore],\n tags: [TagsEnum.Marketplace, 'stripe', 'payments'],\n stability: StabilityEnum.Experimental,\n },\n capabilities: {\n enabled: [{ key: 'payments.psp', version: 1 }],\n },\n integrationSlots: [\n {\n slotId: 'primary-payments',\n requiredCategory: 'payments',\n allowedModes: ['managed', 'byok'],\n requiredCapabilities: [{ key: 'payments.psp', version: 1 }],\n required: true,\n description:\n 'Primary card processor slot. Bind the tenant Stripe connection here.',\n },\n ],\n branding: {\n appNameKey: 'artisan.payments.appName',\n assets: [\n { type: 'logo', url: 'https://cdn.artisanos.dev/branding/logo.png' },\n {\n type: 'favicon',\n url: 'https://cdn.artisanos.dev/branding/favicon.ico',\n },\n ],\n colorTokens: {\n primary: 'colors.brand.primary',\n secondary: 'colors.brand.secondary',\n },\n },\n translationCatalog: {\n key: 'artisan.payments.catalog',\n version: 1,\n },\n workflows: {\n collectPayment: {
|
|
1
|
+
{"version":3,"file":"blueprint.js","names":["artisanStripeBlueprint: AppBlueprintSpec"],"sources":["../src/blueprint.ts"],"sourcesContent":["import type { AppBlueprintSpec } from '@contractspec/lib.contracts/app-config/spec';\nimport {\n OwnersEnum,\n StabilityEnum,\n TagsEnum,\n} from '@contractspec/lib.contracts/ownership';\n\nexport const artisanStripeBlueprint: AppBlueprintSpec = {\n meta: {\n key: 'artisan.payments.stripe',\n version: '1.0.0',\n appId: 'artisan',\n title: 'ArtisanOS Stripe Payments',\n description:\n 'Blueprint enabling card payments for ArtisanOS merchants via the Stripe integration.',\n domain: 'payments',\n owners: [OwnersEnum.PlatformCore],\n tags: [TagsEnum.Marketplace, 'stripe', 'payments'],\n stability: StabilityEnum.Experimental,\n },\n capabilities: {\n enabled: [{ key: 'payments.psp', version: '1.0.0' }],\n },\n integrationSlots: [\n {\n slotId: 'primary-payments',\n requiredCategory: 'payments',\n allowedModes: ['managed', 'byok'],\n requiredCapabilities: [{ key: 'payments.psp', version: '1.0.0' }],\n required: true,\n description:\n 'Primary card processor slot. Bind the tenant Stripe connection here.',\n },\n ],\n branding: {\n appNameKey: 'artisan.payments.appName',\n assets: [\n { type: 'logo', url: 'https://cdn.artisanos.dev/branding/logo.png' },\n {\n type: 'favicon',\n url: 'https://cdn.artisanos.dev/branding/favicon.ico',\n },\n ],\n colorTokens: {\n primary: 'colors.brand.primary',\n secondary: 'colors.brand.secondary',\n },\n },\n translationCatalog: {\n key: 'artisan.payments.catalog',\n version: '1.0.0',\n },\n workflows: {\n collectPayment: {\n key: 'artisan.payments.collectPayment',\n version: '1.0.0',\n },\n },\n policies: [{ key: 'artisan.payments.default', version: '1.0.0' }],\n notes:\n 'Install this blueprint and pair it with the Stripe integration connection to enable card collection.',\n};\n"],"mappings":";;;AAOA,MAAaA,yBAA2C;CACtD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,WAAW,aAAa;EACjC,MAAM;GAAC,SAAS;GAAa;GAAU;GAAW;EAClD,WAAW,cAAc;EAC1B;CACD,cAAc,EACZ,SAAS,CAAC;EAAE,KAAK;EAAgB,SAAS;EAAS,CAAC,EACrD;CACD,kBAAkB,CAChB;EACE,QAAQ;EACR,kBAAkB;EAClB,cAAc,CAAC,WAAW,OAAO;EACjC,sBAAsB,CAAC;GAAE,KAAK;GAAgB,SAAS;GAAS,CAAC;EACjE,UAAU;EACV,aACE;EACH,CACF;CACD,UAAU;EACR,YAAY;EACZ,QAAQ,CACN;GAAE,MAAM;GAAQ,KAAK;GAA+C,EACpE;GACE,MAAM;GACN,KAAK;GACN,CACF;EACD,aAAa;GACX,SAAS;GACT,WAAW;GACZ;EACF;CACD,oBAAoB;EAClB,KAAK;EACL,SAAS;EACV;CACD,WAAW,EACT,gBAAgB;EACd,KAAK;EACL,SAAS;EACV,EACF;CACD,UAAU,CAAC;EAAE,KAAK;EAA4B,SAAS;EAAS,CAAC;CACjE,OACE;CACH"}
|
|
@@ -4,7 +4,7 @@ const stripeLiveConnection = {
|
|
|
4
4
|
id: "conn-stripe-live",
|
|
5
5
|
tenantId: "artisan-co",
|
|
6
6
|
integrationKey: "payments.stripe",
|
|
7
|
-
integrationVersion: 1,
|
|
7
|
+
integrationVersion: "1",
|
|
8
8
|
label: "Stripe Production",
|
|
9
9
|
environment: "production",
|
|
10
10
|
createdAt: "2026-01-01T00:00:00.000Z",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.sample.js","names":["stripeLiveConnection: IntegrationConnection"],"sources":["../src/connection.sample.ts"],"sourcesContent":["import type { IntegrationConnection } from '@contractspec/lib.contracts/integrations/connection';\n\nexport const stripeLiveConnection: IntegrationConnection = {\n meta: {\n id: 'conn-stripe-live',\n tenantId: 'artisan-co',\n integrationKey: 'payments.stripe',\n integrationVersion: 1,\n label: 'Stripe Production',\n environment: 'production',\n createdAt: '2026-01-01T00:00:00.000Z',\n updatedAt: '2026-01-01T00:00:00.000Z',\n },\n ownershipMode: 'managed',\n config: {\n accountId: 'acct_xxx',\n },\n secretProvider: 'vault',\n secretRef: 'vault://integrations/artisan-co/conn-stripe-live',\n status: 'connected',\n};\n"],"mappings":";AAEA,MAAaA,uBAA8C;CACzD,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,gBAAgB;EAChB,oBAAoB;EACpB,OAAO;EACP,aAAa;EACb,WAAW;EACX,WAAW;EACZ;CACD,eAAe;CACf,QAAQ,EACN,WAAW,YACZ;CACD,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACT"}
|
|
1
|
+
{"version":3,"file":"connection.sample.js","names":["stripeLiveConnection: IntegrationConnection"],"sources":["../src/connection.sample.ts"],"sourcesContent":["import type { IntegrationConnection } from '@contractspec/lib.contracts/integrations/connection';\n\nexport const stripeLiveConnection: IntegrationConnection = {\n meta: {\n id: 'conn-stripe-live',\n tenantId: 'artisan-co',\n integrationKey: 'payments.stripe',\n integrationVersion: '1',\n label: 'Stripe Production',\n environment: 'production',\n createdAt: '2026-01-01T00:00:00.000Z',\n updatedAt: '2026-01-01T00:00:00.000Z',\n },\n ownershipMode: 'managed',\n config: {\n accountId: 'acct_xxx',\n },\n secretProvider: 'vault',\n secretRef: 'vault://integrations/artisan-co/conn-stripe-live',\n status: 'connected',\n};\n"],"mappings":";AAEA,MAAaA,uBAA8C;CACzD,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,gBAAgB;EAChB,oBAAoB;EACpB,OAAO;EACP,aAAa;EACb,WAAW;EACX,WAAW;EACZ;CACD,eAAe;CACf,QAAQ,EACN,WAAW,YACZ;CACD,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACT"}
|
package/dist/example.d.ts
CHANGED
|
@@ -1,34 +1,7 @@
|
|
|
1
|
+
import { ExampleSpec } from "@contractspec/lib.contracts";
|
|
2
|
+
|
|
1
3
|
//#region src/example.d.ts
|
|
2
|
-
declare const example:
|
|
3
|
-
readonly id: "integration-stripe";
|
|
4
|
-
readonly title: "Integration — Stripe Payments";
|
|
5
|
-
readonly summary: "Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).";
|
|
6
|
-
readonly tags: readonly ["stripe", "payments", "integration", "blueprint", "workflow"];
|
|
7
|
-
readonly kind: "integration";
|
|
8
|
-
readonly visibility: "public";
|
|
9
|
-
readonly docs: {
|
|
10
|
-
readonly rootDocId: "docs.examples.integration-stripe";
|
|
11
|
-
readonly usageDocId: "docs.examples.integration-stripe.usage";
|
|
12
|
-
};
|
|
13
|
-
readonly entrypoints: {
|
|
14
|
-
readonly packageName: "@contractspec/example.integration-stripe";
|
|
15
|
-
readonly docs: "./docs";
|
|
16
|
-
};
|
|
17
|
-
readonly surfaces: {
|
|
18
|
-
readonly templates: true;
|
|
19
|
-
readonly sandbox: {
|
|
20
|
-
readonly enabled: true;
|
|
21
|
-
readonly modes: readonly ["markdown", "specs"];
|
|
22
|
-
};
|
|
23
|
-
readonly studio: {
|
|
24
|
-
readonly enabled: true;
|
|
25
|
-
readonly installable: true;
|
|
26
|
-
};
|
|
27
|
-
readonly mcp: {
|
|
28
|
-
readonly enabled: true;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
};
|
|
4
|
+
declare const example: ExampleSpec;
|
|
32
5
|
//#endregion
|
|
33
6
|
export { example as default };
|
|
34
7
|
//# sourceMappingURL=example.d.ts.map
|
package/dist/example.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SAAS"}
|
package/dist/example.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
//#region src/example.ts
|
|
2
2
|
const example = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
meta: {
|
|
4
|
+
key: "integration-stripe",
|
|
5
|
+
version: "1.0.0",
|
|
6
|
+
title: "Integration — Stripe Payments",
|
|
7
|
+
description: "Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).",
|
|
8
|
+
kind: "integration",
|
|
9
|
+
visibility: "public",
|
|
10
|
+
stability: "experimental",
|
|
11
|
+
owners: ["@platform.core"],
|
|
12
|
+
tags: [
|
|
13
|
+
"stripe",
|
|
14
|
+
"payments",
|
|
15
|
+
"integration",
|
|
16
|
+
"blueprint",
|
|
17
|
+
"workflow"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
15
20
|
docs: {
|
|
16
21
|
rootDocId: "docs.examples.integration-stripe",
|
|
17
22
|
usageDocId: "docs.examples.integration-stripe.usage"
|
package/dist/example.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"example.js","names":["example: ExampleSpec"],"sources":["../src/example.ts"],"sourcesContent":["import type { ExampleSpec } from '@contractspec/lib.contracts';\n\nconst example: ExampleSpec = {\n meta: {\n key: 'integration-stripe',\n version: '1.0.0',\n title: 'Integration — Stripe Payments',\n description:\n 'Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).',\n kind: 'integration',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['stripe', 'payments', 'integration', 'blueprint', 'workflow'],\n },\n docs: {\n rootDocId: 'docs.examples.integration-stripe',\n usageDocId: 'docs.examples.integration-stripe.usage',\n },\n entrypoints: {\n packageName: '@contractspec/example.integration-stripe',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['markdown', 'specs'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n};\n\nexport default example;\n"],"mappings":";AAEA,MAAMA,UAAuB;CAC3B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAU;GAAY;GAAe;GAAa;GAAW;EACrE;CACD,MAAM;EACJ,WAAW;EACX,YAAY;EACb;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,YAAY,QAAQ;GAAE;EACxD,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
|
package/dist/tenant.js
CHANGED
|
@@ -5,9 +5,9 @@ const artisanStripeTenantConfig = {
|
|
|
5
5
|
tenantId: "artisan-co",
|
|
6
6
|
appId: "artisan",
|
|
7
7
|
blueprintName: "artisan.payments.stripe",
|
|
8
|
-
blueprintVersion: 1,
|
|
8
|
+
blueprintVersion: "1.0.0",
|
|
9
9
|
environment: "production",
|
|
10
|
-
version: 1,
|
|
10
|
+
version: "1.0.0",
|
|
11
11
|
status: "published",
|
|
12
12
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
13
13
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
package/dist/tenant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.js","names":["artisanStripeTenantConfig: TenantAppConfig"],"sources":["../src/tenant.ts"],"sourcesContent":["import type { TenantAppConfig } from '@contractspec/lib.contracts/app-config/spec';\n\nexport const artisanStripeTenantConfig: TenantAppConfig = {\n meta: {\n id: 'tenant-config-artisan-stripe',\n tenantId: 'artisan-co',\n appId: 'artisan',\n blueprintName: 'artisan.payments.stripe',\n blueprintVersion: 1,\n environment: 'production',\n version: 1,\n status: 'published',\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n },\n integrations: [\n {\n slotId: 'primary-payments',\n connectionId: 'conn-stripe-live',\n scope: {\n workflows: ['collectPayment'],\n operations: ['payments.stripe.chargeCard'],\n },\n },\n ],\n knowledge: [],\n locales: {\n defaultLocale: 'en',\n enabledLocales: ['en', 'fr'],\n },\n translationOverrides: {\n entries: [\n {\n key: 'artisan.payments.appName',\n locale: 'en',\n value: 'Artisan Payments Portal',\n },\n ],\n },\n branding: {\n appName: { en: 'Artisan Payments Portal' },\n assets: [\n { type: 'logo', url: 'https://tenant.artisanos.dev/logo.png' },\n { type: 'logo-dark', url: 'https://tenant.artisanos.dev/logo-dark.png' },\n ],\n colors: {\n primary: '#F97316',\n secondary: '#1F2937',\n },\n customDomain: 'pay.artisanos.dev',\n },\n notes: 'Stripe connection bound for production payments.',\n};\n"],"mappings":";AAEA,MAAaA,4BAA6C;CACxD,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,OAAO;EACP,eAAe;EACf,kBAAkB;EAClB,aAAa;EACb,SAAS;EACT,QAAQ;EACR,4BAAW,IAAI,MAAM,EAAC,aAAa;EACnC,4BAAW,IAAI,MAAM,EAAC,aAAa;EACpC;CACD,cAAc,CACZ;EACE,QAAQ;EACR,cAAc;EACd,OAAO;GACL,WAAW,CAAC,iBAAiB;GAC7B,YAAY,CAAC,6BAA6B;GAC3C;EACF,CACF;CACD,WAAW,EAAE;CACb,SAAS;EACP,eAAe;EACf,gBAAgB,CAAC,MAAM,KAAK;EAC7B;CACD,sBAAsB,EACpB,SAAS,CACP;EACE,KAAK;EACL,QAAQ;EACR,OAAO;EACR,CACF,EACF;CACD,UAAU;EACR,SAAS,EAAE,IAAI,2BAA2B;EAC1C,QAAQ,CACN;GAAE,MAAM;GAAQ,KAAK;GAAyC,EAC9D;GAAE,MAAM;GAAa,KAAK;GAA8C,CACzE;EACD,QAAQ;GACN,SAAS;GACT,WAAW;GACZ;EACD,cAAc;EACf;CACD,OAAO;CACR"}
|
|
1
|
+
{"version":3,"file":"tenant.js","names":["artisanStripeTenantConfig: TenantAppConfig"],"sources":["../src/tenant.ts"],"sourcesContent":["import type { TenantAppConfig } from '@contractspec/lib.contracts/app-config/spec';\n\nexport const artisanStripeTenantConfig: TenantAppConfig = {\n meta: {\n id: 'tenant-config-artisan-stripe',\n tenantId: 'artisan-co',\n appId: 'artisan',\n blueprintName: 'artisan.payments.stripe',\n blueprintVersion: '1.0.0',\n environment: 'production',\n version: '1.0.0',\n status: 'published',\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n },\n integrations: [\n {\n slotId: 'primary-payments',\n connectionId: 'conn-stripe-live',\n scope: {\n workflows: ['collectPayment'],\n operations: ['payments.stripe.chargeCard'],\n },\n },\n ],\n knowledge: [],\n locales: {\n defaultLocale: 'en',\n enabledLocales: ['en', 'fr'],\n },\n translationOverrides: {\n entries: [\n {\n key: 'artisan.payments.appName',\n locale: 'en',\n value: 'Artisan Payments Portal',\n },\n ],\n },\n branding: {\n appName: { en: 'Artisan Payments Portal' },\n assets: [\n { type: 'logo', url: 'https://tenant.artisanos.dev/logo.png' },\n { type: 'logo-dark', url: 'https://tenant.artisanos.dev/logo-dark.png' },\n ],\n colors: {\n primary: '#F97316',\n secondary: '#1F2937',\n },\n customDomain: 'pay.artisanos.dev',\n },\n notes: 'Stripe connection bound for production payments.',\n};\n"],"mappings":";AAEA,MAAaA,4BAA6C;CACxD,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,OAAO;EACP,eAAe;EACf,kBAAkB;EAClB,aAAa;EACb,SAAS;EACT,QAAQ;EACR,4BAAW,IAAI,MAAM,EAAC,aAAa;EACnC,4BAAW,IAAI,MAAM,EAAC,aAAa;EACpC;CACD,cAAc,CACZ;EACE,QAAQ;EACR,cAAc;EACd,OAAO;GACL,WAAW,CAAC,iBAAiB;GAC7B,YAAY,CAAC,6BAA6B;GAC3C;EACF,CACF;CACD,WAAW,EAAE;CACb,SAAS;EACP,eAAe;EACf,gBAAgB,CAAC,MAAM,KAAK;EAC7B;CACD,sBAAsB,EACpB,SAAS,CACP;EACE,KAAK;EACL,QAAQ;EACR,OAAO;EACR,CACF,EACF;CACD,UAAU;EACR,SAAS,EAAE,IAAI,2BAA2B;EAC1C,QAAQ,CACN;GAAE,MAAM;GAAQ,KAAK;GAAyC,EAC9D;GAAE,MAAM;GAAa,KAAK;GAA8C,CACzE;EACD,QAAQ;GACN,SAAS;GACT,WAAW;GACZ;EACD,cAAc;EACf;CACD,OAAO;CACR"}
|
package/dist/workflow.js
CHANGED
|
@@ -4,7 +4,7 @@ import { OwnersEnum, StabilityEnum, TagsEnum } from "@contractspec/lib.contracts
|
|
|
4
4
|
const collectPaymentWorkflow = {
|
|
5
5
|
meta: {
|
|
6
6
|
key: "artisan.payments.collectPayment",
|
|
7
|
-
version: 1,
|
|
7
|
+
version: "1.0.0",
|
|
8
8
|
title: "Collect Card Payment",
|
|
9
9
|
description: "Charge a customer using the tenant Stripe connection and record settlement details.",
|
|
10
10
|
domain: "payments",
|
|
@@ -21,7 +21,7 @@ const collectPaymentWorkflow = {
|
|
|
21
21
|
label: "Prepare charge parameters",
|
|
22
22
|
action: { operation: {
|
|
23
23
|
key: "payments.prepareCharge",
|
|
24
|
-
version: 1
|
|
24
|
+
version: "1.0.0"
|
|
25
25
|
} }
|
|
26
26
|
},
|
|
27
27
|
{
|
|
@@ -30,7 +30,7 @@ const collectPaymentWorkflow = {
|
|
|
30
30
|
label: "Charge card via Stripe",
|
|
31
31
|
action: { operation: {
|
|
32
32
|
key: "payments.stripe.chargeCard",
|
|
33
|
-
version: 1
|
|
33
|
+
version: "1.0.0"
|
|
34
34
|
} }
|
|
35
35
|
},
|
|
36
36
|
{
|
|
@@ -39,7 +39,7 @@ const collectPaymentWorkflow = {
|
|
|
39
39
|
label: "Confirm settlement",
|
|
40
40
|
action: { operation: {
|
|
41
41
|
key: "payments.recordSettlement",
|
|
42
|
-
version: 1
|
|
42
|
+
version: "1.0.0"
|
|
43
43
|
} }
|
|
44
44
|
}
|
|
45
45
|
],
|
package/dist/workflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","names":["collectPaymentWorkflow: WorkflowSpec"],"sources":["../src/workflow.ts"],"sourcesContent":["import type { WorkflowSpec } from '@contractspec/lib.contracts/workflow/spec';\nimport {\n OwnersEnum,\n StabilityEnum,\n TagsEnum,\n} from '@contractspec/lib.contracts/ownership';\n\nexport const collectPaymentWorkflow: WorkflowSpec = {\n meta: {\n key: 'artisan.payments.collectPayment',\n version: 1,\n title: 'Collect Card Payment',\n description:\n 'Charge a customer using the tenant Stripe connection and record settlement details.',\n domain: 'payments',\n owners: [OwnersEnum.PlatformCore],\n tags: [TagsEnum.Marketplace, 'stripe'],\n stability: StabilityEnum.Experimental,\n },\n definition: {\n entryStepId: 'prepare',\n steps: [\n {\n id: 'prepare',\n type: 'automation',\n label: 'Prepare charge parameters',\n action: {\n operation: { key: 'payments.prepareCharge', version: 1 },\n },\n },\n {\n id: 'charge',\n type: 'automation',\n label: 'Charge card via Stripe',\n action: {\n operation: { key: 'payments.stripe.chargeCard', version: 1 },\n },\n },\n {\n id: 'confirm',\n type: 'automation',\n label: 'Confirm settlement',\n action: {\n operation: { key: 'payments.recordSettlement', version: 1 },\n },\n },\n ],\n transitions: [\n { from: 'prepare', to: 'charge' },\n { from: 'charge', to: 'confirm', condition: 'output.success === true' },\n ],\n },\n};\n"],"mappings":";;;AAOA,MAAaA,yBAAuC;CAClD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,WAAW,aAAa;EACjC,MAAM,CAAC,SAAS,aAAa,SAAS;EACtC,WAAW,cAAc;EAC1B;CACD,YAAY;EACV,aAAa;EACb,OAAO;GACL;IACE,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ,EACN,WAAW;KAAE,KAAK;KAA0B,SAAS;
|
|
1
|
+
{"version":3,"file":"workflow.js","names":["collectPaymentWorkflow: WorkflowSpec"],"sources":["../src/workflow.ts"],"sourcesContent":["import type { WorkflowSpec } from '@contractspec/lib.contracts/workflow/spec';\nimport {\n OwnersEnum,\n StabilityEnum,\n TagsEnum,\n} from '@contractspec/lib.contracts/ownership';\n\nexport const collectPaymentWorkflow: WorkflowSpec = {\n meta: {\n key: 'artisan.payments.collectPayment',\n version: '1.0.0',\n title: 'Collect Card Payment',\n description:\n 'Charge a customer using the tenant Stripe connection and record settlement details.',\n domain: 'payments',\n owners: [OwnersEnum.PlatformCore],\n tags: [TagsEnum.Marketplace, 'stripe'],\n stability: StabilityEnum.Experimental,\n },\n definition: {\n entryStepId: 'prepare',\n steps: [\n {\n id: 'prepare',\n type: 'automation',\n label: 'Prepare charge parameters',\n action: {\n operation: { key: 'payments.prepareCharge', version: '1.0.0' },\n },\n },\n {\n id: 'charge',\n type: 'automation',\n label: 'Charge card via Stripe',\n action: {\n operation: { key: 'payments.stripe.chargeCard', version: '1.0.0' },\n },\n },\n {\n id: 'confirm',\n type: 'automation',\n label: 'Confirm settlement',\n action: {\n operation: { key: 'payments.recordSettlement', version: '1.0.0' },\n },\n },\n ],\n transitions: [\n { from: 'prepare', to: 'charge' },\n { from: 'charge', to: 'confirm', condition: 'output.success === true' },\n ],\n },\n};\n"],"mappings":";;;AAOA,MAAaA,yBAAuC;CAClD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,WAAW,aAAa;EACjC,MAAM,CAAC,SAAS,aAAa,SAAS;EACtC,WAAW,cAAc;EAC1B;CACD,YAAY;EACV,aAAa;EACb,OAAO;GACL;IACE,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ,EACN,WAAW;KAAE,KAAK;KAA0B,SAAS;KAAS,EAC/D;IACF;GACD;IACE,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ,EACN,WAAW;KAAE,KAAK;KAA8B,SAAS;KAAS,EACnE;IACF;GACD;IACE,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ,EACN,WAAW;KAAE,KAAK;KAA6B,SAAS;KAAS,EAClE;IACF;GACF;EACD,aAAa,CACX;GAAE,MAAM;GAAW,IAAI;GAAU,EACjC;GAAE,MAAM;GAAU,IAAI;GAAW,WAAW;GAA2B,CACxE;EACF;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/example.integration-stripe",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.45.1",
|
|
4
4
|
"description": "Integration example – Stripe Payments (blueprint + workflow + tenant config).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"test": "bun test"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@contractspec/lib.schema": "1.
|
|
34
|
-
"@contractspec/lib.contracts": "1.
|
|
33
|
+
"@contractspec/lib.schema": "1.45.1",
|
|
34
|
+
"@contractspec/lib.contracts": "1.45.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@contractspec/tool.tsdown": "1.
|
|
38
|
-
"@contractspec/tool.typescript": "1.
|
|
37
|
+
"@contractspec/tool.tsdown": "1.45.1",
|
|
38
|
+
"@contractspec/tool.typescript": "1.45.1",
|
|
39
39
|
"tsdown": "^0.18.3",
|
|
40
40
|
"typescript": "^5.9.3"
|
|
41
41
|
},
|
package/src/blueprint.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
export const artisanStripeBlueprint: AppBlueprintSpec = {
|
|
9
9
|
meta: {
|
|
10
10
|
key: 'artisan.payments.stripe',
|
|
11
|
-
version: 1,
|
|
11
|
+
version: '1.0.0',
|
|
12
12
|
appId: 'artisan',
|
|
13
13
|
title: 'ArtisanOS Stripe Payments',
|
|
14
14
|
description:
|
|
@@ -19,14 +19,14 @@ export const artisanStripeBlueprint: AppBlueprintSpec = {
|
|
|
19
19
|
stability: StabilityEnum.Experimental,
|
|
20
20
|
},
|
|
21
21
|
capabilities: {
|
|
22
|
-
enabled: [{ key: 'payments.psp', version: 1 }],
|
|
22
|
+
enabled: [{ key: 'payments.psp', version: '1.0.0' }],
|
|
23
23
|
},
|
|
24
24
|
integrationSlots: [
|
|
25
25
|
{
|
|
26
26
|
slotId: 'primary-payments',
|
|
27
27
|
requiredCategory: 'payments',
|
|
28
28
|
allowedModes: ['managed', 'byok'],
|
|
29
|
-
requiredCapabilities: [{ key: 'payments.psp', version: 1 }],
|
|
29
|
+
requiredCapabilities: [{ key: 'payments.psp', version: '1.0.0' }],
|
|
30
30
|
required: true,
|
|
31
31
|
description:
|
|
32
32
|
'Primary card processor slot. Bind the tenant Stripe connection here.',
|
|
@@ -48,12 +48,15 @@ export const artisanStripeBlueprint: AppBlueprintSpec = {
|
|
|
48
48
|
},
|
|
49
49
|
translationCatalog: {
|
|
50
50
|
key: 'artisan.payments.catalog',
|
|
51
|
-
version: 1,
|
|
51
|
+
version: '1.0.0',
|
|
52
52
|
},
|
|
53
53
|
workflows: {
|
|
54
|
-
collectPayment: {
|
|
54
|
+
collectPayment: {
|
|
55
|
+
key: 'artisan.payments.collectPayment',
|
|
56
|
+
version: '1.0.0',
|
|
57
|
+
},
|
|
55
58
|
},
|
|
56
|
-
policies: [{ key: 'artisan.payments.default', version: 1 }],
|
|
59
|
+
policies: [{ key: 'artisan.payments.default', version: '1.0.0' }],
|
|
57
60
|
notes:
|
|
58
61
|
'Install this blueprint and pair it with the Stripe integration connection to enable card collection.',
|
|
59
62
|
};
|
package/src/connection.sample.ts
CHANGED
|
@@ -5,7 +5,7 @@ export const stripeLiveConnection: IntegrationConnection = {
|
|
|
5
5
|
id: 'conn-stripe-live',
|
|
6
6
|
tenantId: 'artisan-co',
|
|
7
7
|
integrationKey: 'payments.stripe',
|
|
8
|
-
integrationVersion: 1,
|
|
8
|
+
integrationVersion: '1',
|
|
9
9
|
label: 'Stripe Production',
|
|
10
10
|
environment: 'production',
|
|
11
11
|
createdAt: '2026-01-01T00:00:00.000Z',
|
package/src/example.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
'
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { ExampleSpec } from '@contractspec/lib.contracts';
|
|
2
|
+
|
|
3
|
+
const example: ExampleSpec = {
|
|
4
|
+
meta: {
|
|
5
|
+
key: 'integration-stripe',
|
|
6
|
+
version: '1.0.0',
|
|
7
|
+
title: 'Integration — Stripe Payments',
|
|
8
|
+
description:
|
|
9
|
+
'Wire AppBlueprint + Workflow + TenantAppConfig to enable Stripe-backed payments (spec-first integration pattern).',
|
|
10
|
+
kind: 'integration',
|
|
11
|
+
visibility: 'public',
|
|
12
|
+
stability: 'experimental',
|
|
13
|
+
owners: ['@platform.core'],
|
|
14
|
+
tags: ['stripe', 'payments', 'integration', 'blueprint', 'workflow'],
|
|
15
|
+
},
|
|
9
16
|
docs: {
|
|
10
17
|
rootDocId: 'docs.examples.integration-stripe',
|
|
11
18
|
usageDocId: 'docs.examples.integration-stripe.usage',
|
|
@@ -20,6 +27,6 @@ const example = {
|
|
|
20
27
|
studio: { enabled: true, installable: true },
|
|
21
28
|
mcp: { enabled: true },
|
|
22
29
|
},
|
|
23
|
-
}
|
|
30
|
+
};
|
|
24
31
|
|
|
25
32
|
export default example;
|
package/src/tenant.ts
CHANGED
|
@@ -6,9 +6,9 @@ export const artisanStripeTenantConfig: TenantAppConfig = {
|
|
|
6
6
|
tenantId: 'artisan-co',
|
|
7
7
|
appId: 'artisan',
|
|
8
8
|
blueprintName: 'artisan.payments.stripe',
|
|
9
|
-
blueprintVersion: 1,
|
|
9
|
+
blueprintVersion: '1.0.0',
|
|
10
10
|
environment: 'production',
|
|
11
|
-
version: 1,
|
|
11
|
+
version: '1.0.0',
|
|
12
12
|
status: 'published',
|
|
13
13
|
createdAt: new Date().toISOString(),
|
|
14
14
|
updatedAt: new Date().toISOString(),
|
package/src/workflow.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
export const collectPaymentWorkflow: WorkflowSpec = {
|
|
9
9
|
meta: {
|
|
10
10
|
key: 'artisan.payments.collectPayment',
|
|
11
|
-
version: 1,
|
|
11
|
+
version: '1.0.0',
|
|
12
12
|
title: 'Collect Card Payment',
|
|
13
13
|
description:
|
|
14
14
|
'Charge a customer using the tenant Stripe connection and record settlement details.',
|
|
@@ -25,7 +25,7 @@ export const collectPaymentWorkflow: WorkflowSpec = {
|
|
|
25
25
|
type: 'automation',
|
|
26
26
|
label: 'Prepare charge parameters',
|
|
27
27
|
action: {
|
|
28
|
-
operation: { key: 'payments.prepareCharge', version: 1 },
|
|
28
|
+
operation: { key: 'payments.prepareCharge', version: '1.0.0' },
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
31
|
{
|
|
@@ -33,7 +33,7 @@ export const collectPaymentWorkflow: WorkflowSpec = {
|
|
|
33
33
|
type: 'automation',
|
|
34
34
|
label: 'Charge card via Stripe',
|
|
35
35
|
action: {
|
|
36
|
-
operation: { key: 'payments.stripe.chargeCard', version: 1 },
|
|
36
|
+
operation: { key: 'payments.stripe.chargeCard', version: '1.0.0' },
|
|
37
37
|
},
|
|
38
38
|
},
|
|
39
39
|
{
|
|
@@ -41,7 +41,7 @@ export const collectPaymentWorkflow: WorkflowSpec = {
|
|
|
41
41
|
type: 'automation',
|
|
42
42
|
label: 'Confirm settlement',
|
|
43
43
|
action: {
|
|
44
|
-
operation: { key: 'payments.recordSettlement', version: 1 },
|
|
44
|
+
operation: { key: 'payments.recordSettlement', version: '1.0.0' },
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
],
|