@absolutejs/commerce 0.1.1-beta.0 → 0.2.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/cartStore.d.ts +11 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +36 -0
- package/dist/core/orders.d.ts +4 -0
- package/dist/drizzle/index.d.ts +2062 -0
- package/dist/drizzle/index.js +88 -0
- package/dist/index.js +3 -0
- package/package.json +23 -3
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/drizzle/index.ts
|
|
3
|
+
import {
|
|
4
|
+
boolean,
|
|
5
|
+
integer,
|
|
6
|
+
jsonb,
|
|
7
|
+
pgTable,
|
|
8
|
+
text,
|
|
9
|
+
timestamp,
|
|
10
|
+
uuid,
|
|
11
|
+
varchar
|
|
12
|
+
} from "drizzle-orm/pg-core";
|
|
13
|
+
var commerceDesigns = pgTable("designs", {
|
|
14
|
+
created_at: timestamp().notNull().defaultNow(),
|
|
15
|
+
id: uuid().defaultRandom().primaryKey(),
|
|
16
|
+
image_url: varchar({ length: 600 }).notNull(),
|
|
17
|
+
name: varchar({ length: 120 }).notNull(),
|
|
18
|
+
public: boolean().notNull().default(true)
|
|
19
|
+
});
|
|
20
|
+
var commerceDiscounts = pgTable("discounts", {
|
|
21
|
+
active: boolean().notNull().default(true),
|
|
22
|
+
amount_off: integer(),
|
|
23
|
+
code: varchar({ length: 60 }).primaryKey(),
|
|
24
|
+
created_at: timestamp().notNull().defaultNow(),
|
|
25
|
+
expires_at: timestamp(),
|
|
26
|
+
max_uses: integer(),
|
|
27
|
+
percent_off: integer(),
|
|
28
|
+
used_count: integer().notNull().default(0)
|
|
29
|
+
});
|
|
30
|
+
var commerceOrders = pgTable("orders", {
|
|
31
|
+
amount_total: integer(),
|
|
32
|
+
artwork_urls: jsonb().$type().default([]),
|
|
33
|
+
carrier: varchar({ length: 80 }),
|
|
34
|
+
cart_snapshot: jsonb().$type().default([]),
|
|
35
|
+
created_at: timestamp().notNull().defaultNow(),
|
|
36
|
+
currency: varchar({ length: 10 }),
|
|
37
|
+
customer_email: varchar({ length: 320 }),
|
|
38
|
+
digitized_at: timestamp(),
|
|
39
|
+
digitized_url: varchar({ length: 600 }),
|
|
40
|
+
fulfillment: varchar({ length: 20 }),
|
|
41
|
+
label_url: varchar({ length: 600 }),
|
|
42
|
+
line_items: jsonb().$type().default([]),
|
|
43
|
+
payment_status: varchar({ length: 50 }),
|
|
44
|
+
production_stage: varchar({ length: 20 }),
|
|
45
|
+
proof_note: text(),
|
|
46
|
+
proof_status: varchar({ length: 20 }),
|
|
47
|
+
proof_token: varchar({ length: 64 }),
|
|
48
|
+
proof_url: varchar({ length: 600 }),
|
|
49
|
+
rejection_reason: text(),
|
|
50
|
+
session_id: varchar({ length: 255 }).primaryKey(),
|
|
51
|
+
shipped_at: timestamp(),
|
|
52
|
+
shipping: jsonb().$type(),
|
|
53
|
+
status: varchar({ length: 50 }).notNull(),
|
|
54
|
+
tracking_number: varchar({ length: 160 })
|
|
55
|
+
});
|
|
56
|
+
var commerceQuotes = pgTable("quotes", {
|
|
57
|
+
artwork_urls: jsonb().$type().default([]),
|
|
58
|
+
company: varchar({ length: 200 }),
|
|
59
|
+
created_at: timestamp().notNull().defaultNow(),
|
|
60
|
+
customer_email: varchar({ length: 320 }).notNull(),
|
|
61
|
+
deadline: varchar({ length: 120 }),
|
|
62
|
+
deposit_amount: integer(),
|
|
63
|
+
deposit_status: varchar({ length: 20 }),
|
|
64
|
+
id: uuid().defaultRandom().primaryKey(),
|
|
65
|
+
locations: text(),
|
|
66
|
+
name: varchar({ length: 200 }).notNull(),
|
|
67
|
+
notes: text(),
|
|
68
|
+
phone: varchar({ length: 60 }),
|
|
69
|
+
product: varchar({ length: 120 }),
|
|
70
|
+
quantity: integer(),
|
|
71
|
+
quote_message: text(),
|
|
72
|
+
quoted_amount: integer(),
|
|
73
|
+
quoted_at: timestamp(),
|
|
74
|
+
status: varchar({ length: 20 }).notNull().default("new")
|
|
75
|
+
});
|
|
76
|
+
var commerceDrizzleSchema = {
|
|
77
|
+
designs: commerceDesigns,
|
|
78
|
+
discounts: commerceDiscounts,
|
|
79
|
+
orders: commerceOrders,
|
|
80
|
+
quotes: commerceQuotes
|
|
81
|
+
};
|
|
82
|
+
export {
|
|
83
|
+
commerceQuotes,
|
|
84
|
+
commerceOrders,
|
|
85
|
+
commerceDrizzleSchema,
|
|
86
|
+
commerceDiscounts,
|
|
87
|
+
commerceDesigns
|
|
88
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,8 @@ var formatPrice = (value, currency = "USD") => {
|
|
|
27
27
|
return code === "USD" ? `$${value.toFixed(2)}` : `${value.toFixed(2)} ${code}`;
|
|
28
28
|
};
|
|
29
29
|
// src/core/orders.ts
|
|
30
|
+
var clampPercent = (percent) => Math.min(100, Math.max(0, percent));
|
|
31
|
+
var depositCents = (totalCents, percent) => percent > 0 ? Math.round(totalCents * clampPercent(percent) / 100) : 0;
|
|
30
32
|
var PRODUCTION_STAGES = [
|
|
31
33
|
"queued",
|
|
32
34
|
"digitizing",
|
|
@@ -63,6 +65,7 @@ export {
|
|
|
63
65
|
fromCents,
|
|
64
66
|
formatPrice,
|
|
65
67
|
discountAmountCents,
|
|
68
|
+
depositCents,
|
|
66
69
|
cartSubtotal,
|
|
67
70
|
cartSetupTotal,
|
|
68
71
|
cartCount,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@absolutejs/commerce",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.1-beta.0",
|
|
4
4
|
"description": "Provider-agnostic commerce primitives (cart, orders, fulfillment, shipping) for AbsoluteJS",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,19 +20,39 @@
|
|
|
20
20
|
"exports": {
|
|
21
21
|
".": {
|
|
22
22
|
"import": "./dist/index.js",
|
|
23
|
-
"types": "./dist/index.d.ts"
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./client": {
|
|
27
|
+
"browser": "./dist/client/index.js",
|
|
28
|
+
"import": "./dist/client/index.js",
|
|
29
|
+
"types": "./dist/client/index.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./drizzle": {
|
|
32
|
+
"import": "./dist/drizzle/index.js",
|
|
33
|
+
"types": "./dist/drizzle/index.d.ts",
|
|
34
|
+
"default": "./dist/drizzle/index.js"
|
|
24
35
|
}
|
|
25
36
|
},
|
|
26
37
|
"license": "BSL-1.1",
|
|
27
38
|
"author": "Alex Kahn",
|
|
28
39
|
"scripts": {
|
|
29
|
-
"build": "rm -rf dist && bun build ./src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly --project tsconfig.json",
|
|
40
|
+
"build": "rm -rf dist && bun build ./src/index.ts ./src/drizzle/index.ts --outdir dist --target bun --external drizzle-orm && bun build ./src/client/index.ts --outdir dist/client --target browser --format esm && tsc --emitDeclarationOnly --project tsconfig.json",
|
|
30
41
|
"format": "prettier --write \"./**/*.{js,ts,json,md}\"",
|
|
31
42
|
"release": "bun run build && bun publish --tag beta",
|
|
32
43
|
"typecheck": "tsc --noEmit"
|
|
33
44
|
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"drizzle-orm": ">=0.30.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"drizzle-orm": {
|
|
50
|
+
"optional": true
|
|
51
|
+
}
|
|
52
|
+
},
|
|
34
53
|
"devDependencies": {
|
|
35
54
|
"@types/bun": "1.3.9",
|
|
55
|
+
"drizzle-orm": "^0.44.0",
|
|
36
56
|
"typescript": "^5.9.3"
|
|
37
57
|
}
|
|
38
58
|
}
|