@blinkk/root-cms 1.0.0-alpha.9 → 1.0.0-beta.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/package.json CHANGED
@@ -1,21 +1,29 @@
1
1
  {
2
2
  "name": "@blinkk/root-cms",
3
- "version": "1.0.0-alpha.9",
3
+ "version": "1.0.0-beta.1",
4
4
  "author": "s@blinkk.com",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=16.0.0"
8
8
  },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/blinkk/rootjs.git",
12
+ "directory": "packages/root-cms"
13
+ },
9
14
  "files": [
10
15
  "dist/*"
11
16
  ],
17
+ "bin": {
18
+ "root-cms": "./bin/root-cms.js"
19
+ },
12
20
  "type": "module",
13
21
  "module": "./dist/index.js",
14
22
  "types": "./dist/index.d.ts",
15
23
  "exports": {
16
24
  ".": {
17
- "types": "./dist/index.d.ts",
18
- "import": "./dist/index.js"
25
+ "types": "./dist/core.d.ts",
26
+ "import": "./dist/core.js"
19
27
  },
20
28
  "./*": {
21
29
  "types": "./dist/*.d.ts",
@@ -23,17 +31,67 @@
23
31
  }
24
32
  },
25
33
  "dependencies": {
26
- "@blinkk/root": "1.0.0-alpha.16",
27
- "firebase": "^9.13.0"
34
+ "@firebase/app-compat": "^0.1.33",
35
+ "@firebase/app-types": "^0.7.0",
36
+ "body-parser": "^1.20.0",
37
+ "commander": "^10.0.0",
38
+ "cookie-parser": "^1.4.6",
39
+ "dotenv": "^16.0.0",
40
+ "dts-dom": "^3.7.0",
41
+ "esbuild": "^0.17.12",
42
+ "firebase-admin": "^11.5.0",
43
+ "js-beautify": "^1.14.7",
44
+ "kleur": "^4.1.5",
45
+ "preact-render-to-string": "^5.2.3",
46
+ "sirv": "^2.0.2",
47
+ "tiny-glob": "^0.2.9"
28
48
  },
49
+ "//": "NOTE(stevenle): due to compat issues with mantine and preact, mantine is pinned to v4.2.12",
29
50
  "devDependencies": {
51
+ "@babel/core": "^7.17.9",
52
+ "@blinkk/root": "1.0.0-beta.1",
53
+ "@emotion/react": "^11.10.5",
54
+ "@firebase/rules-unit-testing": "^2.0.3",
55
+ "@mantine/core": "4.2.12",
56
+ "@mantine/hooks": "4.2.12",
57
+ "@mantine/modals": "4.2.12",
58
+ "@mantine/notifications": "4.2.12",
59
+ "@mantine/spotlight": "4.2.12",
60
+ "@preact/compat": "^17.1.2",
61
+ "@tabler/icons-preact": "^2.7.0",
62
+ "@types/body-parser": "^1.19.2",
63
+ "@types/cookie-parser": "^1.4.3",
64
+ "@types/jsonwebtoken": "^9.0.1",
65
+ "@types/marked": "^4.0.8",
30
66
  "@types/node": "^18.11.8",
67
+ "concurrently": "^7.6.0",
68
+ "firebase": "^9.17.2",
69
+ "marked": "^4.2.12",
70
+ "preact": "*",
71
+ "preact-router": "^4.1.0",
72
+ "react": "npm:@preact/compat@^17.1.2",
73
+ "react-dom": "npm:@preact/compat@^17.1.2",
31
74
  "tsup": "^6.3.0",
75
+ "typescript": "4.9.4",
76
+ "vite": "4.2.0",
32
77
  "vitest": "^0.18.1"
33
78
  },
79
+ "peerDependencies": {
80
+ "@blinkk/root": "1.0.0-beta.1",
81
+ "firebase-admin": ">=11",
82
+ "preact": "*"
83
+ },
34
84
  "scripts": {
35
- "build": "rm -rf dist && tsup-node",
36
- "test": "pnpm build && vitest run",
37
- "test:watch": "pnpm build && vitest"
85
+ "build": "rm -rf dist && concurrently -n \"core,signin,ui\" npm:build:core npm:build:signin npm:build:ui",
86
+ "build:core": "tsup-node --config=./core/tsup.config.ts",
87
+ "//": "NOTE: esbuild is used here because tsup doesn't currently support aliases.",
88
+ "build:ui": "esbuild ui/ui.tsx --bundle --alias:react=@preact/compat --alias:react-dom=@preact/compat --tsconfig=ui/tsconfig.json --outdir=dist/ui",
89
+ "build:signin": "esbuild signin/signin.tsx --bundle --tsconfig=signin/tsconfig.json --outdir=dist/ui",
90
+ "dev": "rm -rf dist && concurrently -k -n \"core,ui\" npm:dev:core npm:dev:signin npm:dev:ui",
91
+ "dev:core": "pnpm build:core --watch",
92
+ "dev:signin": "pnpm build:signin --watch",
93
+ "dev:ui": "pnpm build:ui --watch",
94
+ "test": "pnpm build && firebase emulators:exec 'vitest run'",
95
+ "test:watch": "pnpm build && firebase emulators:exec 'vitest'"
38
96
  }
39
97
  }
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- declare const test: {};
2
-
3
- export { test };
package/dist/index.js DELETED
@@ -1,6 +0,0 @@
1
- // src/index.ts
2
- var test = {};
3
- export {
4
- test
5
- };
6
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export const test = {};\n"],"mappings":";AAAO,IAAM,OAAO,CAAC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import {Plugin, Request, Response} from '@blinkk/root';\n\ntype CMSPluginOptions = {};\n\nexport function cmsPlugin(options?: CMSPluginOptions): Plugin {\n return {\n name: 'root-cms',\n configureServer: (server) => {\n server.use('/cms', (req: Request, res: Response) => {\n console.log('root config context var:');\n console.log(req.rootConfig);\n res.end('cms');\n });\n },\n };\n}\n"],"mappings":";AAIO,SAAS,UAAU,SAAoC;AAC5D,SAAO;AAAA,IACL,MAAM;AAAA,IACN,iBAAiB,CAAC,WAAW;AAC3B,aAAO,IAAI,QAAQ,CAAC,KAAc,QAAkB;AAClD,gBAAQ,IAAI,0BAA0B;AACtC,gBAAQ,IAAI,IAAI,UAAU;AAC1B,YAAI,IAAI,KAAK;AAAA,MACf,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
package/dist/schema.d.ts DELETED
@@ -1,83 +0,0 @@
1
- interface CommonFieldProps {
2
- id?: string;
3
- label?: string;
4
- help?: string;
5
- type: string;
6
- default?: any;
7
- hidden?: boolean;
8
- deprecated?: boolean;
9
- }
10
- declare type StringField = CommonFieldProps & {
11
- type: 'string';
12
- default?: string;
13
- translate?: boolean;
14
- };
15
- declare function string(field: Omit<StringField, 'type'>): StringField;
16
- declare type NumberField = CommonFieldProps & {
17
- type: 'number';
18
- default?: number;
19
- };
20
- declare function number(field: Omit<NumberField, 'type'>): NumberField;
21
- declare type DateField = CommonFieldProps & {
22
- type: 'date';
23
- default?: string;
24
- };
25
- declare function date(field: Omit<DateField, 'type'>): DateField;
26
- declare type DateTimeField = CommonFieldProps & {
27
- type: 'datetime';
28
- default?: string;
29
- };
30
- declare function datetime(field: Omit<DateTimeField, 'type'>): DateTimeField;
31
- declare type BooleanField = CommonFieldProps & {
32
- type: 'boolean';
33
- default?: boolean;
34
- };
35
- declare function boolean(field: Omit<BooleanField, 'type'>): BooleanField;
36
- declare type SelectField = CommonFieldProps & {
37
- type: 'select';
38
- default?: string;
39
- options?: {
40
- values?: Array<{
41
- value: string;
42
- label?: string;
43
- }>;
44
- };
45
- };
46
- declare function select(field: Omit<SelectField, 'type'>): SelectField;
47
- declare type MultiSelectField = Omit<SelectField, 'type'> & {
48
- type: 'multiselect';
49
- default?: string[];
50
- };
51
- declare function multiselect(field: Omit<MultiSelectField, 'type'>): MultiSelectField;
52
- declare type ImageField = CommonFieldProps & {
53
- type: 'image';
54
- };
55
- declare function image(field: Omit<ImageField, 'type'>): ImageField;
56
- declare type ObjectField = CommonFieldProps & {
57
- type: 'object';
58
- fields: FieldWithId[];
59
- };
60
- declare function object(field: Omit<ObjectField, 'type'>): ObjectField;
61
- declare type ArrayField = CommonFieldProps & {
62
- type: 'array';
63
- default?: Array<any>;
64
- preview?: (value: any) => string;
65
- of: ImageField | ObjectField | OneOfField;
66
- };
67
- declare function array(field: Omit<ArrayField, 'type'>): ArrayField;
68
- declare type OneOfField = CommonFieldProps & {
69
- type: 'oneof';
70
- types: Array<Schema>;
71
- };
72
- declare function oneOf(field: Omit<OneOfField, 'type'>): OneOfField;
73
- declare type Field = StringField | NumberField | DateField | DateTimeField | BooleanField | SelectField | MultiSelectField | ImageField | ObjectField | ArrayField | OneOfField;
74
- declare type FieldWithId = Field;
75
- interface Schema {
76
- name: string;
77
- description?: string;
78
- fields: Array<FieldWithId>;
79
- }
80
- declare function defineSchema(schema: Schema): Schema;
81
- declare const define: typeof defineSchema;
82
-
83
- export { ArrayField, BooleanField, CommonFieldProps, DateField, DateTimeField, Field, FieldWithId, ImageField, MultiSelectField, NumberField, ObjectField, OneOfField, Schema, SelectField, StringField, array, boolean, date, datetime, define, defineSchema, image, multiselect, number, object, oneOf, select, string };
package/dist/schema.js DELETED
@@ -1,54 +0,0 @@
1
- // src/schema.ts
2
- function string(field) {
3
- return { ...field, type: "string" };
4
- }
5
- function number(field) {
6
- return { ...field, type: "number" };
7
- }
8
- function date(field) {
9
- return { ...field, type: "date" };
10
- }
11
- function datetime(field) {
12
- return { ...field, type: "datetime" };
13
- }
14
- function boolean(field) {
15
- return { ...field, type: "boolean" };
16
- }
17
- function select(field) {
18
- return { ...field, type: "select" };
19
- }
20
- function multiselect(field) {
21
- return { ...field, type: "multiselect" };
22
- }
23
- function image(field) {
24
- return { ...field, type: "image" };
25
- }
26
- function object(field) {
27
- return { ...field, type: "object" };
28
- }
29
- function array(field) {
30
- return { ...field, type: "array" };
31
- }
32
- function oneOf(field) {
33
- return { ...field, type: "oneof" };
34
- }
35
- function defineSchema(schema) {
36
- return schema;
37
- }
38
- var define = defineSchema;
39
- export {
40
- array,
41
- boolean,
42
- date,
43
- datetime,
44
- define,
45
- defineSchema,
46
- image,
47
- multiselect,
48
- number,
49
- object,
50
- oneOf,
51
- select,
52
- string
53
- };
54
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema.ts"],"sourcesContent":["export interface CommonFieldProps {\n id?: string;\n label?: string;\n help?: string;\n type: string;\n default?: any;\n hidden?: boolean;\n deprecated?: boolean;\n}\n\nexport type StringField = CommonFieldProps & {\n type: 'string';\n default?: string;\n translate?: boolean;\n};\n\nexport function string(field: Omit<StringField, 'type'>): StringField {\n return {...field, type: 'string'};\n}\n\nexport type NumberField = CommonFieldProps & {\n type: 'number';\n default?: number;\n};\n\nexport function number(field: Omit<NumberField, 'type'>): NumberField {\n return {...field, type: 'number'};\n}\n\nexport type DateField = CommonFieldProps & {\n type: 'date';\n default?: string;\n};\n\nexport function date(field: Omit<DateField, 'type'>): DateField {\n return {...field, type: 'date'};\n}\n\nexport type DateTimeField = CommonFieldProps & {\n type: 'datetime';\n default?: string;\n};\n\nexport function datetime(field: Omit<DateTimeField, 'type'>): DateTimeField {\n return {...field, type: 'datetime'};\n}\n\nexport type BooleanField = CommonFieldProps & {\n type: 'boolean';\n default?: boolean;\n};\n\nexport function boolean(field: Omit<BooleanField, 'type'>): BooleanField {\n return {...field, type: 'boolean'};\n}\n\nexport type SelectField = CommonFieldProps & {\n type: 'select';\n default?: string;\n options?: {\n values?: Array<{value: string; label?: string}>;\n };\n};\n\nexport function select(field: Omit<SelectField, 'type'>): SelectField {\n return {...field, type: 'select'};\n}\n\nexport type MultiSelectField = Omit<SelectField, 'type'> & {\n type: 'multiselect';\n default?: string[];\n};\n\nexport function multiselect(\n field: Omit<MultiSelectField, 'type'>\n): MultiSelectField {\n return {...field, type: 'multiselect'};\n}\n\nexport type ImageField = CommonFieldProps & {\n type: 'image';\n};\n\nexport function image(field: Omit<ImageField, 'type'>): ImageField {\n return {...field, type: 'image'};\n}\n\nexport type ObjectField = CommonFieldProps & {\n type: 'object';\n fields: FieldWithId[];\n};\n\nexport function object(field: Omit<ObjectField, 'type'>): ObjectField {\n return {...field, type: 'object'};\n}\n\nexport type ArrayField = CommonFieldProps & {\n type: 'array';\n default?: Array<any>;\n preview?: (value: any) => string;\n // NOTE(stevenle): the array field should only accept object values to keep\n // the schemas future-friendly. For example, if we were to accept primatives\n // (e.g. Array<string>) and the developer decides in the future that they\n // need to add extra fields to that array type, they would have to create a\n // new field, create a new schema field, and then perform a db migration to\n // update from the old field type to the new field type. But if we enforce\n // objects here, a developer should technically be able to add fields to the\n // nested field definition without breaking any existing db entries.\n of: ImageField | ObjectField | OneOfField;\n};\n\nexport function array(field: Omit<ArrayField, 'type'>): ArrayField {\n return {...field, type: 'array'};\n}\n\nexport type OneOfField = CommonFieldProps & {\n type: 'oneof';\n types: Array<Schema>;\n};\n\nexport function oneOf(field: Omit<OneOfField, 'type'>): OneOfField {\n return {...field, type: 'oneof'};\n}\n\nexport type Field =\n | StringField\n | NumberField\n | DateField\n | DateTimeField\n | BooleanField\n | SelectField\n | MultiSelectField\n | ImageField\n | ObjectField\n | ArrayField\n | OneOfField;\n\nexport type FieldWithId = Field;\n\nexport interface Schema {\n name: string;\n description?: string;\n fields: Array<FieldWithId>;\n}\n\nexport function defineSchema(schema: Schema): Schema {\n return schema;\n}\n\nexport const define = defineSchema;\n"],"mappings":";AAgBO,SAAS,OAAO,OAA+C;AACpE,SAAO,EAAC,GAAG,OAAO,MAAM,SAAQ;AAClC;AAOO,SAAS,OAAO,OAA+C;AACpE,SAAO,EAAC,GAAG,OAAO,MAAM,SAAQ;AAClC;AAOO,SAAS,KAAK,OAA2C;AAC9D,SAAO,EAAC,GAAG,OAAO,MAAM,OAAM;AAChC;AAOO,SAAS,SAAS,OAAmD;AAC1E,SAAO,EAAC,GAAG,OAAO,MAAM,WAAU;AACpC;AAOO,SAAS,QAAQ,OAAiD;AACvE,SAAO,EAAC,GAAG,OAAO,MAAM,UAAS;AACnC;AAUO,SAAS,OAAO,OAA+C;AACpE,SAAO,EAAC,GAAG,OAAO,MAAM,SAAQ;AAClC;AAOO,SAAS,YACd,OACkB;AAClB,SAAO,EAAC,GAAG,OAAO,MAAM,cAAa;AACvC;AAMO,SAAS,MAAM,OAA6C;AACjE,SAAO,EAAC,GAAG,OAAO,MAAM,QAAO;AACjC;AAOO,SAAS,OAAO,OAA+C;AACpE,SAAO,EAAC,GAAG,OAAO,MAAM,SAAQ;AAClC;AAiBO,SAAS,MAAM,OAA6C;AACjE,SAAO,EAAC,GAAG,OAAO,MAAM,QAAO;AACjC;AAOO,SAAS,MAAM,OAA6C;AACjE,SAAO,EAAC,GAAG,OAAO,MAAM,QAAO;AACjC;AAuBO,SAAS,aAAa,QAAwB;AACnD,SAAO;AACT;AAEO,IAAM,SAAS;","names":[]}