@plotpaper/cli 0.2.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/bin/plotpaper.js +2 -0
- package/dist/bundler/index.d.ts +17 -0
- package/dist/bundler/index.js +53 -0
- package/dist/bundler/index.js.map +1 -0
- package/dist/bundler/rewrite.d.ts +13 -0
- package/dist/bundler/rewrite.js +93 -0
- package/dist/bundler/rewrite.js.map +1 -0
- package/dist/bundler/transform.d.ts +7 -0
- package/dist/bundler/transform.js +66 -0
- package/dist/bundler/transform.js.map +1 -0
- package/dist/bundler/wrap.d.ts +6 -0
- package/dist/bundler/wrap.js +21 -0
- package/dist/bundler/wrap.js.map +1 -0
- package/dist/commands/bundle.d.ts +6 -0
- package/dist/commands/bundle.js +97 -0
- package/dist/commands/bundle.js.map +1 -0
- package/dist/commands/submit.d.ts +8 -0
- package/dist/commands/submit.js +114 -0
- package/dist/commands/submit.js.map +1 -0
- package/dist/commands/validate.d.ts +4 -0
- package/dist/commands/validate.js +97 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/api.d.ts +15 -0
- package/dist/utils/api.js +56 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/config.d.ts +9 -0
- package/dist/utils/config.js +73 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/validation/imports.d.ts +5 -0
- package/dist/validation/imports.js +33 -0
- package/dist/validation/imports.js.map +1 -0
- package/dist/validation/index.d.ts +27 -0
- package/dist/validation/index.js +79 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/patterns.d.ts +8 -0
- package/dist/validation/patterns.js +38 -0
- package/dist/validation/patterns.js.map +1 -0
- package/dist/validation/schema.d.ts +209 -0
- package/dist/validation/schema.js +181 -0
- package/dist/validation/schema.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const SchemaInputZ: z.ZodObject<{
|
|
3
|
+
entities: z.ZodArray<z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
attrs: z.ZodArray<z.ZodObject<{
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
valueType: z.ZodEnum<["string", "number", "boolean", "date", "json"]>;
|
|
8
|
+
indexed: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
+
unique: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
name: string;
|
|
12
|
+
valueType: "string" | "number" | "boolean" | "date" | "json";
|
|
13
|
+
indexed?: boolean | undefined;
|
|
14
|
+
unique?: boolean | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
name: string;
|
|
17
|
+
valueType: "string" | "number" | "boolean" | "date" | "json";
|
|
18
|
+
indexed?: boolean | undefined;
|
|
19
|
+
unique?: boolean | undefined;
|
|
20
|
+
}>, "many">;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
name: string;
|
|
23
|
+
attrs: {
|
|
24
|
+
name: string;
|
|
25
|
+
valueType: "string" | "number" | "boolean" | "date" | "json";
|
|
26
|
+
indexed?: boolean | undefined;
|
|
27
|
+
unique?: boolean | undefined;
|
|
28
|
+
}[];
|
|
29
|
+
}, {
|
|
30
|
+
name: string;
|
|
31
|
+
attrs: {
|
|
32
|
+
name: string;
|
|
33
|
+
valueType: "string" | "number" | "boolean" | "date" | "json";
|
|
34
|
+
indexed?: boolean | undefined;
|
|
35
|
+
unique?: boolean | undefined;
|
|
36
|
+
}[];
|
|
37
|
+
}>, "many">;
|
|
38
|
+
links: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
39
|
+
name: z.ZodString;
|
|
40
|
+
forward: z.ZodObject<{
|
|
41
|
+
on: z.ZodString;
|
|
42
|
+
label: z.ZodString;
|
|
43
|
+
has: z.ZodEnum<["many", "one"]>;
|
|
44
|
+
onDelete: z.ZodOptional<z.ZodNullable<z.ZodEnum<["cascade"]>>>;
|
|
45
|
+
}, "strip", z.ZodTypeAny, {
|
|
46
|
+
on: string;
|
|
47
|
+
label: string;
|
|
48
|
+
has: "many" | "one";
|
|
49
|
+
onDelete?: "cascade" | null | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
on: string;
|
|
52
|
+
label: string;
|
|
53
|
+
has: "many" | "one";
|
|
54
|
+
onDelete?: "cascade" | null | undefined;
|
|
55
|
+
}>;
|
|
56
|
+
reverse: z.ZodObject<{
|
|
57
|
+
on: z.ZodString;
|
|
58
|
+
label: z.ZodString;
|
|
59
|
+
has: z.ZodEnum<["many", "one"]>;
|
|
60
|
+
onDelete: z.ZodOptional<z.ZodNullable<z.ZodEnum<["cascade"]>>>;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
on: string;
|
|
63
|
+
label: string;
|
|
64
|
+
has: "many" | "one";
|
|
65
|
+
onDelete?: "cascade" | null | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
on: string;
|
|
68
|
+
label: string;
|
|
69
|
+
has: "many" | "one";
|
|
70
|
+
onDelete?: "cascade" | null | undefined;
|
|
71
|
+
}>;
|
|
72
|
+
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
reverse: {
|
|
74
|
+
on: string;
|
|
75
|
+
label: string;
|
|
76
|
+
has: "many" | "one";
|
|
77
|
+
onDelete?: "cascade" | null | undefined;
|
|
78
|
+
};
|
|
79
|
+
name: string;
|
|
80
|
+
forward: {
|
|
81
|
+
on: string;
|
|
82
|
+
label: string;
|
|
83
|
+
has: "many" | "one";
|
|
84
|
+
onDelete?: "cascade" | null | undefined;
|
|
85
|
+
};
|
|
86
|
+
}, {
|
|
87
|
+
reverse: {
|
|
88
|
+
on: string;
|
|
89
|
+
label: string;
|
|
90
|
+
has: "many" | "one";
|
|
91
|
+
onDelete?: "cascade" | null | undefined;
|
|
92
|
+
};
|
|
93
|
+
name: string;
|
|
94
|
+
forward: {
|
|
95
|
+
on: string;
|
|
96
|
+
label: string;
|
|
97
|
+
has: "many" | "one";
|
|
98
|
+
onDelete?: "cascade" | null | undefined;
|
|
99
|
+
};
|
|
100
|
+
}>, "many">>;
|
|
101
|
+
}, "strip", z.ZodTypeAny, {
|
|
102
|
+
entities: {
|
|
103
|
+
name: string;
|
|
104
|
+
attrs: {
|
|
105
|
+
name: string;
|
|
106
|
+
valueType: "string" | "number" | "boolean" | "date" | "json";
|
|
107
|
+
indexed?: boolean | undefined;
|
|
108
|
+
unique?: boolean | undefined;
|
|
109
|
+
}[];
|
|
110
|
+
}[];
|
|
111
|
+
links?: {
|
|
112
|
+
reverse: {
|
|
113
|
+
on: string;
|
|
114
|
+
label: string;
|
|
115
|
+
has: "many" | "one";
|
|
116
|
+
onDelete?: "cascade" | null | undefined;
|
|
117
|
+
};
|
|
118
|
+
name: string;
|
|
119
|
+
forward: {
|
|
120
|
+
on: string;
|
|
121
|
+
label: string;
|
|
122
|
+
has: "many" | "one";
|
|
123
|
+
onDelete?: "cascade" | null | undefined;
|
|
124
|
+
};
|
|
125
|
+
}[] | undefined;
|
|
126
|
+
}, {
|
|
127
|
+
entities: {
|
|
128
|
+
name: string;
|
|
129
|
+
attrs: {
|
|
130
|
+
name: string;
|
|
131
|
+
valueType: "string" | "number" | "boolean" | "date" | "json";
|
|
132
|
+
indexed?: boolean | undefined;
|
|
133
|
+
unique?: boolean | undefined;
|
|
134
|
+
}[];
|
|
135
|
+
}[];
|
|
136
|
+
links?: {
|
|
137
|
+
reverse: {
|
|
138
|
+
on: string;
|
|
139
|
+
label: string;
|
|
140
|
+
has: "many" | "one";
|
|
141
|
+
onDelete?: "cascade" | null | undefined;
|
|
142
|
+
};
|
|
143
|
+
name: string;
|
|
144
|
+
forward: {
|
|
145
|
+
on: string;
|
|
146
|
+
label: string;
|
|
147
|
+
has: "many" | "one";
|
|
148
|
+
onDelete?: "cascade" | null | undefined;
|
|
149
|
+
};
|
|
150
|
+
}[] | undefined;
|
|
151
|
+
}>;
|
|
152
|
+
export declare const PermissionsZ: z.ZodArray<z.ZodObject<{
|
|
153
|
+
entity: z.ZodString;
|
|
154
|
+
allow: z.ZodObject<{
|
|
155
|
+
view: z.ZodString;
|
|
156
|
+
create: z.ZodString;
|
|
157
|
+
update: z.ZodString;
|
|
158
|
+
delete: z.ZodString;
|
|
159
|
+
}, "strip", z.ZodTypeAny, {
|
|
160
|
+
view: string;
|
|
161
|
+
create: string;
|
|
162
|
+
update: string;
|
|
163
|
+
delete: string;
|
|
164
|
+
}, {
|
|
165
|
+
view: string;
|
|
166
|
+
create: string;
|
|
167
|
+
update: string;
|
|
168
|
+
delete: string;
|
|
169
|
+
}>;
|
|
170
|
+
}, "strip", z.ZodTypeAny, {
|
|
171
|
+
entity: string;
|
|
172
|
+
allow: {
|
|
173
|
+
view: string;
|
|
174
|
+
create: string;
|
|
175
|
+
update: string;
|
|
176
|
+
delete: string;
|
|
177
|
+
};
|
|
178
|
+
}, {
|
|
179
|
+
entity: string;
|
|
180
|
+
allow: {
|
|
181
|
+
view: string;
|
|
182
|
+
create: string;
|
|
183
|
+
update: string;
|
|
184
|
+
delete: string;
|
|
185
|
+
};
|
|
186
|
+
}>, "many">;
|
|
187
|
+
export type SchemaInput = z.infer<typeof SchemaInputZ>;
|
|
188
|
+
export type PermissionsInput = z.infer<typeof PermissionsZ>;
|
|
189
|
+
/**
|
|
190
|
+
* Parse and validate schema JSON.
|
|
191
|
+
*/
|
|
192
|
+
export declare function validateSchema(jsonStr: string): SchemaInput;
|
|
193
|
+
/**
|
|
194
|
+
* Parse and validate permissions JSON.
|
|
195
|
+
*/
|
|
196
|
+
export declare function validatePermissions(jsonStr: string): PermissionsInput;
|
|
197
|
+
export interface ResolvedSchema {
|
|
198
|
+
schema: SchemaInput;
|
|
199
|
+
permissions?: PermissionsInput;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Resolve schema for an app, checking in order:
|
|
203
|
+
* 1. Explicit --schema flag path
|
|
204
|
+
* 2. schema.json alongside the source file
|
|
205
|
+
*
|
|
206
|
+
* Also loads permissions.json if it exists next to the schema file.
|
|
207
|
+
* Returns null if no schema found.
|
|
208
|
+
*/
|
|
209
|
+
export declare function resolveSchema(sourceFilePath: string, schemaFlagPath?: string): ResolvedSchema | null;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Schema & Permissions Validation
|
|
4
|
+
//
|
|
5
|
+
// Schema is provided as a separate schema.json file (matches server format).
|
|
6
|
+
// The CLI auto-detects schema.json alongside the source file, or accepts
|
|
7
|
+
// an explicit --schema flag.
|
|
8
|
+
// =============================================================================
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.PermissionsZ = exports.SchemaInputZ = void 0;
|
|
44
|
+
exports.validateSchema = validateSchema;
|
|
45
|
+
exports.validatePermissions = validatePermissions;
|
|
46
|
+
exports.resolveSchema = resolveSchema;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const zod_1 = require("zod");
|
|
50
|
+
const VALID_VALUE_TYPES = ["string", "number", "boolean", "date", "json"];
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
// Zod schemas — match server's MiniAppSchemaZ and PermissionsZ exactly
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
exports.SchemaInputZ = zod_1.z.object({
|
|
55
|
+
entities: zod_1.z.array(zod_1.z.object({
|
|
56
|
+
name: zod_1.z.string(),
|
|
57
|
+
attrs: zod_1.z.array(zod_1.z.object({
|
|
58
|
+
name: zod_1.z.string(),
|
|
59
|
+
valueType: zod_1.z.enum(VALID_VALUE_TYPES),
|
|
60
|
+
indexed: zod_1.z.boolean().optional(),
|
|
61
|
+
unique: zod_1.z.boolean().optional(),
|
|
62
|
+
})),
|
|
63
|
+
})),
|
|
64
|
+
links: zod_1.z.array(zod_1.z.object({
|
|
65
|
+
name: zod_1.z.string(),
|
|
66
|
+
forward: zod_1.z.object({
|
|
67
|
+
on: zod_1.z.string(),
|
|
68
|
+
label: zod_1.z.string(),
|
|
69
|
+
has: zod_1.z.enum(["many", "one"]),
|
|
70
|
+
onDelete: zod_1.z.enum(["cascade"]).nullable().optional(),
|
|
71
|
+
}),
|
|
72
|
+
reverse: zod_1.z.object({
|
|
73
|
+
on: zod_1.z.string(),
|
|
74
|
+
label: zod_1.z.string(),
|
|
75
|
+
has: zod_1.z.enum(["many", "one"]),
|
|
76
|
+
onDelete: zod_1.z.enum(["cascade"]).nullable().optional(),
|
|
77
|
+
}),
|
|
78
|
+
})).optional(),
|
|
79
|
+
});
|
|
80
|
+
exports.PermissionsZ = zod_1.z.array(zod_1.z.object({
|
|
81
|
+
entity: zod_1.z.string(),
|
|
82
|
+
allow: zod_1.z.object({
|
|
83
|
+
view: zod_1.z.string(),
|
|
84
|
+
create: zod_1.z.string(),
|
|
85
|
+
update: zod_1.z.string(),
|
|
86
|
+
delete: zod_1.z.string(),
|
|
87
|
+
}),
|
|
88
|
+
}));
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Validation
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
/**
|
|
93
|
+
* Parse and validate schema JSON.
|
|
94
|
+
*/
|
|
95
|
+
function validateSchema(jsonStr) {
|
|
96
|
+
let parsed;
|
|
97
|
+
try {
|
|
98
|
+
parsed = JSON.parse(jsonStr);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
throw new Error("Schema file contains invalid JSON");
|
|
102
|
+
}
|
|
103
|
+
const result = exports.SchemaInputZ.safeParse(parsed);
|
|
104
|
+
if (!result.success) {
|
|
105
|
+
const issues = result.error.issues
|
|
106
|
+
.map((i) => ` - ${i.path.join(".")}: ${i.message}`)
|
|
107
|
+
.join("\n");
|
|
108
|
+
throw new Error(`Schema validation errors:\n${issues}`);
|
|
109
|
+
}
|
|
110
|
+
// Cross-validate: link entity names must reference defined entities
|
|
111
|
+
const entityNames = new Set(result.data.entities.map((e) => e.name));
|
|
112
|
+
if (result.data.links) {
|
|
113
|
+
for (const link of result.data.links) {
|
|
114
|
+
if (!entityNames.has(link.forward.on)) {
|
|
115
|
+
throw new Error(`Link "${link.name}" forward references unknown entity "${link.forward.on}"`);
|
|
116
|
+
}
|
|
117
|
+
if (!entityNames.has(link.reverse.on)) {
|
|
118
|
+
throw new Error(`Link "${link.name}" reverse references unknown entity "${link.reverse.on}"`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return result.data;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Parse and validate permissions JSON.
|
|
126
|
+
*/
|
|
127
|
+
function validatePermissions(jsonStr) {
|
|
128
|
+
let parsed;
|
|
129
|
+
try {
|
|
130
|
+
parsed = JSON.parse(jsonStr);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
throw new Error("Permissions file contains invalid JSON");
|
|
134
|
+
}
|
|
135
|
+
const result = exports.PermissionsZ.safeParse(parsed);
|
|
136
|
+
if (!result.success) {
|
|
137
|
+
const issues = result.error.issues
|
|
138
|
+
.map((i) => ` - ${i.path.join(".")}: ${i.message}`)
|
|
139
|
+
.join("\n");
|
|
140
|
+
throw new Error(`Permissions validation errors:\n${issues}`);
|
|
141
|
+
}
|
|
142
|
+
return result.data;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Resolve schema for an app, checking in order:
|
|
146
|
+
* 1. Explicit --schema flag path
|
|
147
|
+
* 2. schema.json alongside the source file
|
|
148
|
+
*
|
|
149
|
+
* Also loads permissions.json if it exists next to the schema file.
|
|
150
|
+
* Returns null if no schema found.
|
|
151
|
+
*/
|
|
152
|
+
function resolveSchema(sourceFilePath, schemaFlagPath) {
|
|
153
|
+
const dir = path.dirname(sourceFilePath);
|
|
154
|
+
// 1. Explicit --schema flag
|
|
155
|
+
if (schemaFlagPath) {
|
|
156
|
+
const resolved = path.resolve(schemaFlagPath);
|
|
157
|
+
if (!fs.existsSync(resolved)) {
|
|
158
|
+
throw new Error(`Schema file not found: ${resolved}`);
|
|
159
|
+
}
|
|
160
|
+
const schema = validateSchema(fs.readFileSync(resolved, "utf-8"));
|
|
161
|
+
const permPath = path.join(path.dirname(resolved), "permissions.json");
|
|
162
|
+
let permissions;
|
|
163
|
+
if (fs.existsSync(permPath)) {
|
|
164
|
+
permissions = validatePermissions(fs.readFileSync(permPath, "utf-8"));
|
|
165
|
+
}
|
|
166
|
+
return { schema, permissions };
|
|
167
|
+
}
|
|
168
|
+
// 2. schema.json alongside source file
|
|
169
|
+
const schemaJsonPath = path.join(dir, "schema.json");
|
|
170
|
+
if (fs.existsSync(schemaJsonPath)) {
|
|
171
|
+
const schema = validateSchema(fs.readFileSync(schemaJsonPath, "utf-8"));
|
|
172
|
+
const permPath = path.join(dir, "permissions.json");
|
|
173
|
+
let permissions;
|
|
174
|
+
if (fs.existsSync(permPath)) {
|
|
175
|
+
permissions = validatePermissions(fs.readFileSync(permPath, "utf-8"));
|
|
176
|
+
}
|
|
177
|
+
return { schema, permissions };
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/validation/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plotpaper/cli",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "CLI for validating, bundling, and submitting Plotpaper mini apps",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"plotpaper": "./bin/plotpaper.js"
|
|
9
|
+
},
|
|
10
|
+
"files": ["dist", "bin"],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"dev": "tsc --watch",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"commander": "^12.0.0",
|
|
18
|
+
"esbuild-wasm": "^0.21.0",
|
|
19
|
+
"zod": "^3.23.0",
|
|
20
|
+
"chalk": "^4.1.2"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^20.0.0",
|
|
24
|
+
"typescript": "^5.4.0"
|
|
25
|
+
},
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/plotpaper/plotpaper-sdk"
|
|
30
|
+
},
|
|
31
|
+
"keywords": ["plotpaper", "mini-app", "cli", "bundler"]
|
|
32
|
+
}
|