alchemy 0.1.8 → 0.1.9
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/lib/$.d.ts +7 -0
- package/lib/$.d.ts.map +1 -0
- package/lib/$.js +31 -0
- package/lib/$.js.map +1 -0
- package/lib/agent/ai.d.ts +40 -0
- package/lib/agent/ai.d.ts.map +1 -0
- package/lib/agent/ai.js +132 -0
- package/lib/agent/ai.js.map +1 -0
- package/lib/agent/anthropic.d.ts +9 -0
- package/lib/agent/anthropic.d.ts.map +1 -0
- package/lib/agent/anthropic.js +25 -0
- package/lib/agent/anthropic.js.map +1 -0
- package/lib/agent/dependencies.d.ts +4 -0
- package/lib/agent/dependencies.d.ts.map +1 -0
- package/lib/agent/dependencies.js +48 -0
- package/lib/agent/dependencies.js.map +1 -0
- package/lib/agent/file-context.d.ts +13 -0
- package/lib/agent/file-context.d.ts.map +1 -0
- package/lib/agent/file-context.js +6 -0
- package/lib/agent/file-context.js.map +1 -0
- package/lib/agent/index.d.ts +10 -0
- package/lib/agent/index.d.ts.map +1 -0
- package/lib/agent/index.js +10 -0
- package/lib/agent/index.js.map +1 -0
- package/lib/agent/model.d.ts +8 -0
- package/lib/agent/model.d.ts.map +1 -0
- package/lib/agent/model.js +29 -0
- package/lib/agent/model.js.map +1 -0
- package/lib/agent/module.d.ts +81 -0
- package/lib/agent/module.d.ts.map +1 -0
- package/lib/agent/module.js +309 -0
- package/lib/agent/module.js.map +1 -0
- package/lib/agent/openai.d.ts +6 -0
- package/lib/agent/openai.d.ts.map +1 -0
- package/lib/agent/openai.js +41 -0
- package/lib/agent/openai.js.map +1 -0
- package/lib/agent/program.d.ts +12 -0
- package/lib/agent/program.d.ts.map +1 -0
- package/lib/agent/program.js +21 -0
- package/lib/agent/program.js.map +1 -0
- package/lib/agent/prompts.d.ts +4 -0
- package/lib/agent/prompts.d.ts.map +1 -0
- package/lib/agent/prompts.js +11 -0
- package/lib/agent/prompts.js.map +1 -0
- package/lib/agent/scrape.d.ts +71 -0
- package/lib/agent/scrape.d.ts.map +1 -0
- package/lib/agent/scrape.js +45 -0
- package/lib/agent/scrape.js.map +1 -0
- package/lib/alchemize.d.ts +43 -0
- package/lib/alchemize.d.ts.map +1 -0
- package/lib/alchemize.js +105 -0
- package/lib/alchemize.js.map +1 -0
- package/lib/apply.d.ts +23 -0
- package/lib/apply.d.ts.map +1 -0
- package/lib/apply.js +84 -0
- package/lib/apply.js.map +1 -0
- package/lib/aws/auto/docs.d.ts +11 -0
- package/lib/aws/auto/docs.d.ts.map +1 -0
- package/lib/aws/auto/docs.js +56 -0
- package/lib/aws/auto/docs.js.map +1 -0
- package/lib/aws/auto/index.d.ts +5 -0
- package/lib/aws/auto/index.d.ts.map +1 -0
- package/lib/aws/auto/index.js +5 -0
- package/lib/aws/auto/index.js.map +1 -0
- package/lib/aws/auto/resource.d.ts +24 -0
- package/lib/aws/auto/resource.d.ts.map +1 -0
- package/lib/aws/auto/resource.js +194 -0
- package/lib/aws/auto/resource.js.map +1 -0
- package/lib/aws/auto/service.d.ts +10 -0
- package/lib/aws/auto/service.d.ts.map +1 -0
- package/lib/aws/auto/service.js +34 -0
- package/lib/aws/auto/service.js.map +1 -0
- package/lib/aws/auto/spec.d.ts +83 -0
- package/lib/aws/auto/spec.d.ts.map +1 -0
- package/lib/aws/auto/spec.js +58 -0
- package/lib/aws/auto/spec.js.map +1 -0
- package/lib/aws/bucket.d.ts +21 -0
- package/lib/aws/bucket.d.ts.map +1 -0
- package/lib/aws/bucket.js +114 -0
- package/lib/aws/bucket.js.map +1 -0
- package/lib/aws/function.d.ts +53 -0
- package/lib/aws/function.d.ts.map +1 -0
- package/lib/aws/function.js +195 -0
- package/lib/aws/function.js.map +1 -0
- package/lib/aws/index.d.ts +7 -0
- package/lib/aws/index.d.ts.map +1 -0
- package/lib/aws/index.js +7 -0
- package/lib/aws/index.js.map +1 -0
- package/lib/aws/policy.d.ts +46 -0
- package/lib/aws/policy.d.ts.map +1 -0
- package/lib/aws/policy.js +139 -0
- package/lib/aws/policy.js.map +1 -0
- package/lib/aws/queue.d.ts +38 -0
- package/lib/aws/queue.d.ts.map +1 -0
- package/lib/aws/queue.js +162 -0
- package/lib/aws/queue.js.map +1 -0
- package/lib/aws/role.d.ts +27 -0
- package/lib/aws/role.d.ts.map +1 -0
- package/lib/aws/role.js +149 -0
- package/lib/aws/role.js.map +1 -0
- package/lib/aws/table.d.ts +26 -0
- package/lib/aws/table.d.ts.map +1 -0
- package/lib/aws/table.js +120 -0
- package/lib/aws/table.js.map +1 -0
- package/lib/destroy.d.ts +19 -0
- package/lib/destroy.d.ts.map +1 -0
- package/lib/destroy.js +47 -0
- package/lib/destroy.js.map +1 -0
- package/lib/error.d.ts +2 -0
- package/lib/error.d.ts.map +1 -0
- package/lib/error.js +13 -0
- package/lib/error.js.map +1 -0
- package/lib/esbuild.d.ts +70 -0
- package/lib/esbuild.d.ts.map +1 -0
- package/lib/esbuild.js +58 -0
- package/lib/esbuild.js.map +1 -0
- package/lib/fs.d.ts +12 -0
- package/lib/fs.d.ts.map +1 -0
- package/lib/fs.js +41 -0
- package/lib/fs.js.map +1 -0
- package/lib/global.d.ts +18 -0
- package/lib/global.d.ts.map +1 -0
- package/lib/global.js +42 -0
- package/lib/global.js.map +1 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -0
- package/lib/input.d.ts +6 -0
- package/lib/input.d.ts.map +1 -0
- package/lib/input.js +2 -0
- package/lib/input.js.map +1 -0
- package/lib/main.d.ts +3 -0
- package/lib/main.d.ts.map +1 -0
- package/lib/main.js +32 -0
- package/lib/main.js.map +1 -0
- package/lib/markdown/design.d.ts +17 -0
- package/lib/markdown/design.d.ts.map +1 -0
- package/lib/markdown/design.js +92 -0
- package/lib/markdown/design.js.map +1 -0
- package/lib/markdown/extract.d.ts +7 -0
- package/lib/markdown/extract.d.ts.map +1 -0
- package/lib/markdown/extract.js +10 -0
- package/lib/markdown/extract.js.map +1 -0
- package/lib/markdown/index.d.ts +4 -0
- package/lib/markdown/index.d.ts.map +1 -0
- package/lib/markdown/index.js +4 -0
- package/lib/markdown/index.js.map +1 -0
- package/lib/markdown/requirements.d.ts +79 -0
- package/lib/markdown/requirements.d.ts.map +1 -0
- package/lib/markdown/requirements.js +105 -0
- package/lib/markdown/requirements.js.map +1 -0
- package/lib/output.d.ts +19 -0
- package/lib/output.d.ts.map +1 -0
- package/lib/output.js +16 -0
- package/lib/output.js.map +1 -0
- package/lib/resource.d.ts +66 -0
- package/lib/resource.d.ts.map +1 -0
- package/lib/resource.js +242 -0
- package/lib/resource.js.map +1 -0
- package/lib/scope.d.ts +15 -0
- package/lib/scope.d.ts.map +1 -0
- package/lib/scope.js +38 -0
- package/lib/scope.js.map +1 -0
- package/lib/slug.d.ts +2 -0
- package/lib/slug.d.ts.map +1 -0
- package/lib/slug.js +4 -0
- package/lib/slug.js.map +1 -0
- package/lib/state.d.ts +40 -0
- package/lib/state.d.ts.map +1 -0
- package/lib/state.js +73 -0
- package/lib/state.js.map +1 -0
- package/lib/stripe/index.d.ts +4 -0
- package/lib/stripe/index.d.ts.map +1 -0
- package/lib/stripe/index.js +4 -0
- package/lib/stripe/index.js.map +1 -0
- package/lib/stripe/price.d.ts +109 -0
- package/lib/stripe/price.d.ts.map +1 -0
- package/lib/stripe/price.js +112 -0
- package/lib/stripe/price.js.map +1 -0
- package/lib/stripe/product.d.ts +86 -0
- package/lib/stripe/product.d.ts.map +1 -0
- package/lib/stripe/product.js +90 -0
- package/lib/stripe/product.js.map +1 -0
- package/lib/stripe/webhook.d.ts +73 -0
- package/lib/stripe/webhook.d.ts.map +1 -0
- package/lib/stripe/webhook.js +94 -0
- package/lib/stripe/webhook.js.map +1 -0
- package/lib/typescript/check-omission.d.ts +2 -0
- package/lib/typescript/check-omission.d.ts.map +1 -0
- package/lib/typescript/check-omission.js +43 -0
- package/lib/typescript/check-omission.js.map +1 -0
- package/lib/typescript/debug-type-errors.d.ts +3 -0
- package/lib/typescript/debug-type-errors.d.ts.map +1 -0
- package/lib/typescript/debug-type-errors.js +35 -0
- package/lib/typescript/debug-type-errors.js.map +1 -0
- package/lib/typescript/extract.d.ts +7 -0
- package/lib/typescript/extract.d.ts.map +1 -0
- package/lib/typescript/extract.js +10 -0
- package/lib/typescript/extract.js.map +1 -0
- package/lib/typescript/index.d.ts +7 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/index.js +7 -0
- package/lib/typescript/index.js.map +1 -0
- package/lib/typescript/install-dependencies.d.ts +29 -0
- package/lib/typescript/install-dependencies.d.ts.map +1 -0
- package/lib/typescript/install-dependencies.js +52 -0
- package/lib/typescript/install-dependencies.js.map +1 -0
- package/lib/typescript/package.d.ts +157 -0
- package/lib/typescript/package.d.ts.map +1 -0
- package/lib/typescript/package.js +115 -0
- package/lib/typescript/package.js.map +1 -0
- package/lib/typescript/repair-omissions.d.ts +3 -0
- package/lib/typescript/repair-omissions.d.ts.map +1 -0
- package/lib/typescript/repair-omissions.js +23 -0
- package/lib/typescript/repair-omissions.js.map +1 -0
- package/lib/typescript/repair.d.ts +3 -0
- package/lib/typescript/repair.d.ts.map +1 -0
- package/lib/typescript/repair.js +34 -0
- package/lib/typescript/repair.js.map +1 -0
- package/lib/typescript/tsconfig.d.ts +469 -0
- package/lib/typescript/tsconfig.d.ts.map +1 -0
- package/lib/typescript/tsconfig.js +143 -0
- package/lib/typescript/tsconfig.js.map +1 -0
- package/lib/typescript/typescript.d.ts +107 -0
- package/lib/typescript/typescript.d.ts.map +1 -0
- package/lib/typescript/typescript.js +180 -0
- package/lib/typescript/typescript.js.map +1 -0
- package/lib/typescript/validate.d.ts +10 -0
- package/lib/typescript/validate.d.ts.map +1 -0
- package/lib/typescript/validate.js +49 -0
- package/lib/typescript/validate.js.map +1 -0
- package/package.json +2 -1
- package/test/aws/function.test.ts +0 -144
- package/test/aws/queue.test.ts +0 -85
- package/test/aws/role.test.ts +0 -153
- package/test/aws/table.test.ts +0 -73
- package/test/esbuild.test.ts +0 -41
- package/test/handler.ts +0 -9
- package/test/scope.test.ts +0 -67
- package/test/stripe/stripe.test.ts +0 -136
- package/tsconfig.json +0 -33
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import Stripe from "stripe";
|
|
2
|
+
import { Resource } from "../resource";
|
|
3
|
+
export class Price extends Resource("stripe::Price", async (ctx, props) => {
|
|
4
|
+
// Get Stripe API key from context or environment
|
|
5
|
+
const apiKey = process.env.STRIPE_API_KEY;
|
|
6
|
+
if (!apiKey) {
|
|
7
|
+
throw new Error("STRIPE_API_KEY environment variable is required");
|
|
8
|
+
}
|
|
9
|
+
// Initialize Stripe client
|
|
10
|
+
const stripe = new Stripe(apiKey);
|
|
11
|
+
if (ctx.event === "delete") {
|
|
12
|
+
try {
|
|
13
|
+
if (ctx.event === "delete" && ctx.output?.id) {
|
|
14
|
+
// Prices can't be deleted, only deactivated
|
|
15
|
+
await stripe.prices.update(ctx.output.id, { active: false });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
// Ignore if the price doesn't exist
|
|
20
|
+
console.error("Error deactivating price:", error);
|
|
21
|
+
}
|
|
22
|
+
// Return a minimal output for deleted state
|
|
23
|
+
return {
|
|
24
|
+
...props,
|
|
25
|
+
id: "",
|
|
26
|
+
createdAt: 0,
|
|
27
|
+
livemode: false,
|
|
28
|
+
type: (props.recurring ? "recurring" : "one_time"),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
try {
|
|
33
|
+
let price;
|
|
34
|
+
if (ctx.event === "update" && ctx.output?.id) {
|
|
35
|
+
// Update existing price (limited properties can be updated)
|
|
36
|
+
price = await stripe.prices.update(ctx.output.id, {
|
|
37
|
+
active: props.active,
|
|
38
|
+
metadata: props.metadata,
|
|
39
|
+
nickname: props.nickname,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Create new price
|
|
44
|
+
const createParams = {
|
|
45
|
+
currency: props.currency,
|
|
46
|
+
product: props.product,
|
|
47
|
+
active: props.active,
|
|
48
|
+
billing_scheme: props.billingScheme,
|
|
49
|
+
nickname: props.nickname,
|
|
50
|
+
metadata: props.metadata,
|
|
51
|
+
tax_behavior: props.taxBehavior,
|
|
52
|
+
};
|
|
53
|
+
// Add unit amount fields
|
|
54
|
+
if (props.unitAmount !== undefined) {
|
|
55
|
+
createParams.unit_amount = props.unitAmount;
|
|
56
|
+
}
|
|
57
|
+
else if (props.unitAmountDecimal !== undefined) {
|
|
58
|
+
createParams.unit_amount_decimal = props.unitAmountDecimal;
|
|
59
|
+
}
|
|
60
|
+
// Add recurring parameters if present
|
|
61
|
+
if (props.recurring) {
|
|
62
|
+
createParams.recurring = {
|
|
63
|
+
interval: props.recurring.interval,
|
|
64
|
+
interval_count: props.recurring.intervalCount,
|
|
65
|
+
usage_type: props.recurring.usageType,
|
|
66
|
+
aggregate_usage: props.recurring.aggregateUsage,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
price = await stripe.prices.create(createParams);
|
|
70
|
+
}
|
|
71
|
+
// Transform Stripe recurring object to our format
|
|
72
|
+
const recurring = price.recurring
|
|
73
|
+
? {
|
|
74
|
+
interval: price.recurring
|
|
75
|
+
.interval,
|
|
76
|
+
intervalCount: price.recurring.interval_count,
|
|
77
|
+
usageType: price.recurring
|
|
78
|
+
.usage_type,
|
|
79
|
+
aggregateUsage: price.recurring
|
|
80
|
+
.aggregate_usage,
|
|
81
|
+
}
|
|
82
|
+
: undefined;
|
|
83
|
+
// Map Stripe API response to our output format
|
|
84
|
+
const output = {
|
|
85
|
+
id: price.id,
|
|
86
|
+
product: typeof price.product === "string"
|
|
87
|
+
? price.product
|
|
88
|
+
: price.product.id,
|
|
89
|
+
currency: price.currency,
|
|
90
|
+
unitAmount: price.unit_amount || undefined,
|
|
91
|
+
unitAmountDecimal: price.unit_amount_decimal || undefined,
|
|
92
|
+
active: price.active,
|
|
93
|
+
billingScheme: price.billing_scheme,
|
|
94
|
+
nickname: price.nickname || undefined,
|
|
95
|
+
recurring: recurring,
|
|
96
|
+
metadata: price.metadata || undefined,
|
|
97
|
+
taxBehavior: price.tax_behavior,
|
|
98
|
+
createdAt: price.created,
|
|
99
|
+
livemode: price.livemode,
|
|
100
|
+
type: price.type,
|
|
101
|
+
lookupKey: price.lookup_key || undefined,
|
|
102
|
+
};
|
|
103
|
+
return output;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error("Error creating/updating price:", error);
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}) {
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=price.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../src/stripe/price.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import Stripe from "stripe";
|
|
2
|
+
type ProductType = Stripe.Product.Type;
|
|
3
|
+
/**
|
|
4
|
+
* Properties for creating a Stripe product
|
|
5
|
+
*/
|
|
6
|
+
export interface ProductProps {
|
|
7
|
+
/**
|
|
8
|
+
* The product's name
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* The product's description
|
|
13
|
+
*/
|
|
14
|
+
description?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the product is active
|
|
17
|
+
*/
|
|
18
|
+
active?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* A list of up to 8 URLs of images for this product
|
|
21
|
+
*/
|
|
22
|
+
images?: string[];
|
|
23
|
+
/**
|
|
24
|
+
* A URL of the product's thumbnail
|
|
25
|
+
*/
|
|
26
|
+
url?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Whether this product is shipped (physical goods)
|
|
29
|
+
*/
|
|
30
|
+
shippable?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Product type: good, service
|
|
33
|
+
*/
|
|
34
|
+
type?: ProductType;
|
|
35
|
+
/**
|
|
36
|
+
* Unit label to use on invoices
|
|
37
|
+
*/
|
|
38
|
+
unitLabel?: string;
|
|
39
|
+
/**
|
|
40
|
+
* A label for the product to be displayed on Checkout
|
|
41
|
+
*/
|
|
42
|
+
statementDescriptor?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Set of key-value pairs for this product
|
|
45
|
+
*/
|
|
46
|
+
metadata?: Record<string, string>;
|
|
47
|
+
/**
|
|
48
|
+
* Default tax code for the product
|
|
49
|
+
*/
|
|
50
|
+
taxCode?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Output from the Stripe product
|
|
54
|
+
*/
|
|
55
|
+
export interface ProductOutput extends ProductProps {
|
|
56
|
+
/**
|
|
57
|
+
* The ID of the product
|
|
58
|
+
*/
|
|
59
|
+
id: string;
|
|
60
|
+
/**
|
|
61
|
+
* Time at which the object was created
|
|
62
|
+
*/
|
|
63
|
+
createdAt: number;
|
|
64
|
+
/**
|
|
65
|
+
* Has the value true if the object exists in live mode or the value false if the object exists in test mode
|
|
66
|
+
*/
|
|
67
|
+
livemode: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Time at which the object was last updated
|
|
70
|
+
*/
|
|
71
|
+
updatedAt: number;
|
|
72
|
+
/**
|
|
73
|
+
* Whether this product can be used for Checkout/Payment Links
|
|
74
|
+
*/
|
|
75
|
+
packageDimensions?: {
|
|
76
|
+
height: number;
|
|
77
|
+
length: number;
|
|
78
|
+
weight: number;
|
|
79
|
+
width: number;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
declare const Product_base: import("../resource").Provider<"stripe::Product", [props: ProductProps], ProductOutput>;
|
|
83
|
+
export declare class Product extends Product_base {
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=product.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.d.ts","sourceRoot":"","sources":["../../src/stripe/product.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;;AAED,qBAAa,OAAQ,SAAQ,YA2F5B;CAAG"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import Stripe from "stripe";
|
|
2
|
+
import { Resource } from "../resource";
|
|
3
|
+
export class Product extends Resource("stripe::Product", async (ctx, props) => {
|
|
4
|
+
// Get Stripe API key from context or environment
|
|
5
|
+
const apiKey = process.env.STRIPE_API_KEY;
|
|
6
|
+
if (!apiKey) {
|
|
7
|
+
throw new Error("STRIPE_API_KEY environment variable is required");
|
|
8
|
+
}
|
|
9
|
+
// Initialize Stripe client
|
|
10
|
+
const stripe = new Stripe(apiKey);
|
|
11
|
+
if (ctx.event === "delete") {
|
|
12
|
+
try {
|
|
13
|
+
if (ctx.event === "delete" && ctx.output?.id) {
|
|
14
|
+
await stripe.products.update(ctx.output.id, { active: false });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
// Ignore if the product doesn't exist
|
|
19
|
+
console.error("Error deactivating product:", error);
|
|
20
|
+
}
|
|
21
|
+
// Return a minimal output for deleted state
|
|
22
|
+
return {
|
|
23
|
+
...props,
|
|
24
|
+
id: "",
|
|
25
|
+
createdAt: 0,
|
|
26
|
+
updatedAt: 0,
|
|
27
|
+
livemode: false,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
try {
|
|
32
|
+
let product;
|
|
33
|
+
if (ctx.event === "update" && ctx.output?.id) {
|
|
34
|
+
// Update existing product
|
|
35
|
+
product = await stripe.products.update(ctx.output.id, {
|
|
36
|
+
name: props.name,
|
|
37
|
+
description: props.description,
|
|
38
|
+
active: props.active,
|
|
39
|
+
images: props.images,
|
|
40
|
+
url: props.url,
|
|
41
|
+
statement_descriptor: props.statementDescriptor,
|
|
42
|
+
metadata: props.metadata,
|
|
43
|
+
tax_code: props.taxCode,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Create new product
|
|
48
|
+
product = await stripe.products.create({
|
|
49
|
+
name: props.name,
|
|
50
|
+
description: props.description,
|
|
51
|
+
active: props.active,
|
|
52
|
+
images: props.images,
|
|
53
|
+
url: props.url,
|
|
54
|
+
shippable: props.shippable,
|
|
55
|
+
type: props.type,
|
|
56
|
+
unit_label: props.unitLabel,
|
|
57
|
+
statement_descriptor: props.statementDescriptor,
|
|
58
|
+
metadata: props.metadata,
|
|
59
|
+
tax_code: props.taxCode,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// Map Stripe API response to our output format
|
|
63
|
+
const output = {
|
|
64
|
+
id: product.id,
|
|
65
|
+
name: product.name,
|
|
66
|
+
description: product.description || undefined,
|
|
67
|
+
active: product.active,
|
|
68
|
+
images: product.images || undefined,
|
|
69
|
+
url: product.url || undefined,
|
|
70
|
+
shippable: product.shippable || undefined,
|
|
71
|
+
type: product.type,
|
|
72
|
+
unitLabel: product.unit_label || undefined,
|
|
73
|
+
statementDescriptor: product.statement_descriptor || undefined,
|
|
74
|
+
metadata: product.metadata || undefined,
|
|
75
|
+
taxCode: typeof product.tax_code === "string" ? product.tax_code : undefined,
|
|
76
|
+
createdAt: product.created,
|
|
77
|
+
livemode: product.livemode,
|
|
78
|
+
updatedAt: product.updated,
|
|
79
|
+
packageDimensions: product.package_dimensions || undefined,
|
|
80
|
+
};
|
|
81
|
+
return output;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error("Error creating/updating product:", error);
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}) {
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=product.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/stripe/product.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import Stripe from "stripe";
|
|
2
|
+
export type EnabledEvent = Stripe.WebhookEndpointUpdateParams.EnabledEvent;
|
|
3
|
+
/**
|
|
4
|
+
* Properties for creating a Stripe webhook endpoint
|
|
5
|
+
*/
|
|
6
|
+
export interface WebhookEndpointProps {
|
|
7
|
+
/**
|
|
8
|
+
* The URL of the webhook endpoint
|
|
9
|
+
*/
|
|
10
|
+
url: string;
|
|
11
|
+
/**
|
|
12
|
+
* The list of events to enable for this endpoint
|
|
13
|
+
*/
|
|
14
|
+
enabledEvents: EnabledEvent[];
|
|
15
|
+
/**
|
|
16
|
+
* Description of the webhook
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the webhook is active
|
|
21
|
+
*/
|
|
22
|
+
active?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The API version events are rendered as for this webhook
|
|
25
|
+
*/
|
|
26
|
+
apiVersion?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to include mounted endpoint events automatically
|
|
29
|
+
*/
|
|
30
|
+
connect?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Webhook endpoint metadata
|
|
33
|
+
*/
|
|
34
|
+
metadata?: Record<string, string>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Output from the Stripe webhook endpoint
|
|
38
|
+
*/
|
|
39
|
+
export interface WebhookEndpointOutput extends WebhookEndpointProps {
|
|
40
|
+
/**
|
|
41
|
+
* The ID of the webhook
|
|
42
|
+
*/
|
|
43
|
+
id: string;
|
|
44
|
+
/**
|
|
45
|
+
* The webhook endpoint's secret key, used to verify signatures on received events
|
|
46
|
+
*/
|
|
47
|
+
secret: string;
|
|
48
|
+
/**
|
|
49
|
+
* The webhook endpoint's application
|
|
50
|
+
*/
|
|
51
|
+
application?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Time at which the object was created
|
|
54
|
+
*/
|
|
55
|
+
createdAt: number;
|
|
56
|
+
/**
|
|
57
|
+
* Has the value true if the object exists in live mode or the value false if the object exists in test mode
|
|
58
|
+
*/
|
|
59
|
+
livemode: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Time at which the object was last updated
|
|
62
|
+
*/
|
|
63
|
+
updatedAt: number;
|
|
64
|
+
/**
|
|
65
|
+
* The status of the webhook
|
|
66
|
+
*/
|
|
67
|
+
status: string;
|
|
68
|
+
}
|
|
69
|
+
declare const WebhookEndpoint_base: import("../resource").Provider<"stripe::WebhookEndpoint", [props: WebhookEndpointProps], WebhookEndpointOutput>;
|
|
70
|
+
export declare class WebhookEndpoint extends WebhookEndpoint_base {
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/stripe/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,2BAA2B,CAAC,YAAY,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;IAE9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;;AAED,qBAAa,eAAgB,SAAQ,oBAiGpC;CAAG"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import Stripe from "stripe";
|
|
2
|
+
import { Resource } from "../resource";
|
|
3
|
+
export class WebhookEndpoint extends Resource("stripe::WebhookEndpoint", async (ctx, props) => {
|
|
4
|
+
// Get Stripe API key from context or environment
|
|
5
|
+
const apiKey = process.env.STRIPE_API_KEY;
|
|
6
|
+
if (!apiKey) {
|
|
7
|
+
throw new Error("STRIPE_API_KEY environment variable is required");
|
|
8
|
+
}
|
|
9
|
+
// Initialize Stripe client
|
|
10
|
+
const stripe = new Stripe(apiKey);
|
|
11
|
+
if (ctx.event === "delete") {
|
|
12
|
+
try {
|
|
13
|
+
// Get the webhook ID from the stored output
|
|
14
|
+
if (ctx.event === "delete" && ctx.output?.id) {
|
|
15
|
+
await stripe.webhookEndpoints.del(ctx.output.id);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
// Ignore if the webhook doesn't exist
|
|
20
|
+
console.error("Error deleting webhook:", error);
|
|
21
|
+
}
|
|
22
|
+
// Return a minimal output for deleted state
|
|
23
|
+
return {
|
|
24
|
+
...props,
|
|
25
|
+
id: "",
|
|
26
|
+
secret: "",
|
|
27
|
+
createdAt: 0,
|
|
28
|
+
updatedAt: 0,
|
|
29
|
+
livemode: false,
|
|
30
|
+
status: "deleted",
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
try {
|
|
35
|
+
let webhook;
|
|
36
|
+
if (ctx.event === "update" && ctx.output?.id) {
|
|
37
|
+
// Update existing webhook
|
|
38
|
+
webhook = await stripe.webhookEndpoints.update(ctx.output.id, {
|
|
39
|
+
url: props.url,
|
|
40
|
+
enabled_events: props.enabledEvents,
|
|
41
|
+
description: props.description,
|
|
42
|
+
disabled: props.active === false,
|
|
43
|
+
metadata: props.metadata,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Create new webhook
|
|
48
|
+
webhook = await stripe.webhookEndpoints.create({
|
|
49
|
+
url: props.url,
|
|
50
|
+
enabled_events: props.enabledEvents,
|
|
51
|
+
description: props.description,
|
|
52
|
+
metadata: props.metadata,
|
|
53
|
+
});
|
|
54
|
+
// For connect parameter, need to handle it separately if it exists
|
|
55
|
+
if (props.connect !== undefined) {
|
|
56
|
+
// Note: connect is specified at creation time and cannot be updated
|
|
57
|
+
console.log("Note: 'connect' parameter will be applied at creation time only");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Store the secret if available
|
|
61
|
+
let secret = "";
|
|
62
|
+
if (webhook.secret) {
|
|
63
|
+
secret = webhook.secret;
|
|
64
|
+
}
|
|
65
|
+
else if (ctx.event === "update" && ctx.output?.secret) {
|
|
66
|
+
secret = ctx.output.secret;
|
|
67
|
+
}
|
|
68
|
+
// Map Stripe API response to our output format
|
|
69
|
+
const output = {
|
|
70
|
+
id: webhook.id,
|
|
71
|
+
url: webhook.url,
|
|
72
|
+
enabledEvents: webhook.enabled_events,
|
|
73
|
+
description: webhook.description || undefined,
|
|
74
|
+
active: webhook.status === "enabled",
|
|
75
|
+
apiVersion: webhook.api_version || undefined,
|
|
76
|
+
// connect: !!webhook.connect,
|
|
77
|
+
metadata: webhook.metadata || undefined,
|
|
78
|
+
secret: secret,
|
|
79
|
+
application: webhook.application || undefined,
|
|
80
|
+
createdAt: webhook.created,
|
|
81
|
+
livemode: webhook.livemode,
|
|
82
|
+
updatedAt: webhook.created, // Using created timestamp as updated
|
|
83
|
+
status: webhook.status,
|
|
84
|
+
};
|
|
85
|
+
return output;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error("Error creating/updating webhook:", error);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}) {
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/stripe/webhook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-omission.d.ts","sourceRoot":"","sources":["../../src/typescript/check-omission.ts"],"names":[],"mappings":"AAWA,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmCzE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { generateObject } from "../agent/ai";
|
|
3
|
+
import { resolveModel } from "../agent/model";
|
|
4
|
+
const CodeOmissionCheck = z.object({
|
|
5
|
+
hasOmittedCode: z.boolean(),
|
|
6
|
+
explanation: z.string(),
|
|
7
|
+
});
|
|
8
|
+
const haiku = await resolveModel("claude-3-5-haiku-latest");
|
|
9
|
+
export async function checkForCodeOmission(code) {
|
|
10
|
+
const result = await generateObject({
|
|
11
|
+
model: haiku,
|
|
12
|
+
schema: CodeOmissionCheck,
|
|
13
|
+
temperature: 0.1,
|
|
14
|
+
messages: [
|
|
15
|
+
{
|
|
16
|
+
role: "system",
|
|
17
|
+
content: "You are checking for signs of code omission in TypeScript code. Look for comments that indicate abbreviated or omitted content.",
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
role: "user",
|
|
21
|
+
content: `Check this code for any signs of content being lazily omitted:
|
|
22
|
+
|
|
23
|
+
\`\`\`typescript
|
|
24
|
+
${code}
|
|
25
|
+
\`\`\`
|
|
26
|
+
|
|
27
|
+
Look for patterns like:
|
|
28
|
+
- "// rest of the ..."
|
|
29
|
+
- "// remaining code ..."
|
|
30
|
+
- "// ... existing code ..."
|
|
31
|
+
- "// other methods ..."
|
|
32
|
+
- "// etc ..."
|
|
33
|
+
- "// Implementation would go here"
|
|
34
|
+
- "// For now just ..."
|
|
35
|
+
- Any similar comments that indicate code was abbreviated
|
|
36
|
+
|
|
37
|
+
Only answer true if you find such comments indicating omitted content. Otherwise answer false.`,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
return result.object.hasOmittedCode;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=check-omission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-omission.js","sourceRoot":"","sources":["../../src/typescript/check-omission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;QAClC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,iBAAiB;QACzB,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,QAAQ;gBACd,OAAO,EACL,iIAAiI;aACpI;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;;;EAGf,IAAI;;;;;;;;;;;;;+FAayF;aACxF;SACF;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-type-errors.d.ts","sourceRoot":"","sources":["../../src/typescript/debug-type-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAItC,wBAAsB,eAAe,CACnC,QAAQ,EAAE,WAAW,EAAE,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAkCjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { generateText } from "../agent/ai";
|
|
2
|
+
import { resolveModel } from "../agent/model";
|
|
3
|
+
export async function debugTypeErrors(messages, typeErrors) {
|
|
4
|
+
const o3Model = await resolveModel("o3-mini");
|
|
5
|
+
// Get diagnostic analysis from o3-mini
|
|
6
|
+
const consultationMessages = [
|
|
7
|
+
...messages,
|
|
8
|
+
{
|
|
9
|
+
role: "user",
|
|
10
|
+
content: `Analyze these TypeScript errors and the code to identify the root causes:
|
|
11
|
+
|
|
12
|
+
TypeScript errors:
|
|
13
|
+
${typeErrors}
|
|
14
|
+
|
|
15
|
+
Please help by:
|
|
16
|
+
1. Diagnosing the root cause of any type errors
|
|
17
|
+
2. Identifying specific sections of code that need to change
|
|
18
|
+
3. Providing step-by-step guidance on how to fix them
|
|
19
|
+
|
|
20
|
+
Focus only on type-related issues and necessary fixes.`,
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
const { text: analysis } = await generateText({
|
|
24
|
+
model: o3Model,
|
|
25
|
+
temperature: 0.1,
|
|
26
|
+
providerOptions: {
|
|
27
|
+
openai: {
|
|
28
|
+
reasoningEffort: "high",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
messages: consultationMessages,
|
|
32
|
+
});
|
|
33
|
+
return analysis;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=debug-type-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-type-errors.js","sourceRoot":"","sources":["../../src/typescript/debug-type-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAuB,EACvB,UAAkB;IAElB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IAE9C,uCAAuC;IACvC,MAAM,oBAAoB,GAAkB;QAC1C,GAAG,QAAQ;QACX;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;;;EAGb,UAAU;;;;;;;uDAO2C;SAClD;KACF,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC;QAC5C,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE;YACf,MAAM,EAAE;gBACN,eAAe,EAAE,MAAM;aACxB;SACF;QACD,QAAQ,EAAE,oBAAoB;KAC/B,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts TypeScript code from a markdown code block
|
|
3
|
+
* @param text Response text that may contain markdown
|
|
4
|
+
* @returns The TypeScript code if found, undefined otherwise
|
|
5
|
+
*/
|
|
6
|
+
export declare function extractTypeScriptCode(text: string): string | undefined;
|
|
7
|
+
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/typescript/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGtE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts TypeScript code from a markdown code block
|
|
3
|
+
* @param text Response text that may contain markdown
|
|
4
|
+
* @returns The TypeScript code if found, undefined otherwise
|
|
5
|
+
*/
|
|
6
|
+
export function extractTypeScriptCode(text) {
|
|
7
|
+
const matches = text.match(/```(?:ts|typescript)\n([\s\S]*?)```/);
|
|
8
|
+
return matches?.[1]?.trim();
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/typescript/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAClE,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typescript/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typescript/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|