@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.
Files changed (44) hide show
  1. package/bin/plotpaper.js +2 -0
  2. package/dist/bundler/index.d.ts +17 -0
  3. package/dist/bundler/index.js +53 -0
  4. package/dist/bundler/index.js.map +1 -0
  5. package/dist/bundler/rewrite.d.ts +13 -0
  6. package/dist/bundler/rewrite.js +93 -0
  7. package/dist/bundler/rewrite.js.map +1 -0
  8. package/dist/bundler/transform.d.ts +7 -0
  9. package/dist/bundler/transform.js +66 -0
  10. package/dist/bundler/transform.js.map +1 -0
  11. package/dist/bundler/wrap.d.ts +6 -0
  12. package/dist/bundler/wrap.js +21 -0
  13. package/dist/bundler/wrap.js.map +1 -0
  14. package/dist/commands/bundle.d.ts +6 -0
  15. package/dist/commands/bundle.js +97 -0
  16. package/dist/commands/bundle.js.map +1 -0
  17. package/dist/commands/submit.d.ts +8 -0
  18. package/dist/commands/submit.js +114 -0
  19. package/dist/commands/submit.js.map +1 -0
  20. package/dist/commands/validate.d.ts +4 -0
  21. package/dist/commands/validate.js +97 -0
  22. package/dist/commands/validate.js.map +1 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.js +52 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/utils/api.d.ts +15 -0
  27. package/dist/utils/api.js +56 -0
  28. package/dist/utils/api.js.map +1 -0
  29. package/dist/utils/config.d.ts +9 -0
  30. package/dist/utils/config.js +73 -0
  31. package/dist/utils/config.js.map +1 -0
  32. package/dist/validation/imports.d.ts +5 -0
  33. package/dist/validation/imports.js +33 -0
  34. package/dist/validation/imports.js.map +1 -0
  35. package/dist/validation/index.d.ts +27 -0
  36. package/dist/validation/index.js +79 -0
  37. package/dist/validation/index.js.map +1 -0
  38. package/dist/validation/patterns.d.ts +8 -0
  39. package/dist/validation/patterns.js +38 -0
  40. package/dist/validation/patterns.js.map +1 -0
  41. package/dist/validation/schema.d.ts +209 -0
  42. package/dist/validation/schema.js +181 -0
  43. package/dist/validation/schema.js.map +1 -0
  44. 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
+ }