@antlur/backstage 1.1.0 → 1.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/dist/cjs/studio/define-block.js +6 -0
- package/dist/cjs/studio/define-field.js +6 -0
- package/dist/cjs/studio/define-schema.js +6 -0
- package/dist/cjs/studio/index.js +20 -0
- package/dist/cjs/studio/types/block.js +2 -0
- package/dist/cjs/studio/types/field-values.js +2 -0
- package/dist/cjs/studio/types/field.js +2 -0
- package/dist/cjs/studio/types/index.js +19 -0
- package/dist/cjs/types/index.js +1 -0
- package/dist/esm/config.d.ts +2 -0
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/studio/define-block.d.ts +11 -0
- package/dist/esm/studio/define-block.d.ts.map +1 -0
- package/dist/esm/studio/define-block.js +3 -0
- package/dist/esm/studio/define-field.d.ts +3 -0
- package/dist/esm/studio/define-field.d.ts.map +1 -0
- package/dist/esm/studio/define-field.js +3 -0
- package/dist/esm/studio/define-schema.d.ts +3 -0
- package/dist/esm/studio/define-schema.d.ts.map +1 -0
- package/dist/esm/studio/define-schema.js +3 -0
- package/dist/esm/studio/index.d.ts +5 -0
- package/dist/esm/studio/index.d.ts.map +1 -0
- package/dist/esm/studio/index.js +4 -0
- package/dist/esm/studio/types/block.d.ts +25 -0
- package/dist/esm/studio/types/block.d.ts.map +1 -0
- package/dist/esm/studio/types/block.js +1 -0
- package/dist/esm/studio/types/field-values.d.ts +8 -0
- package/dist/esm/studio/types/field-values.d.ts.map +1 -0
- package/dist/esm/studio/types/field-values.js +1 -0
- package/dist/esm/studio/types/field.d.ts +14 -0
- package/dist/esm/studio/types/field.d.ts.map +1 -0
- package/dist/esm/studio/types/field.js +1 -0
- package/dist/esm/studio/types/index.d.ts +4 -0
- package/dist/esm/studio/types/index.d.ts.map +1 -0
- package/dist/esm/studio/types/index.js +3 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/studio/define-block.d.ts +11 -0
- package/dist/types/studio/define-block.d.ts.map +1 -0
- package/dist/types/studio/define-field.d.ts +3 -0
- package/dist/types/studio/define-field.d.ts.map +1 -0
- package/dist/types/studio/define-schema.d.ts +3 -0
- package/dist/types/studio/define-schema.d.ts.map +1 -0
- package/dist/types/studio/index.d.ts +5 -0
- package/dist/types/studio/index.d.ts.map +1 -0
- package/dist/types/studio/types/block.d.ts +25 -0
- package/dist/types/studio/types/block.d.ts.map +1 -0
- package/dist/types/studio/types/field-values.d.ts +8 -0
- package/dist/types/studio/types/field-values.d.ts.map +1 -0
- package/dist/types/studio/types/field.d.ts +14 -0
- package/dist/types/studio/types/field.d.ts.map +1 -0
- package/dist/types/studio/types/index.d.ts +4 -0
- package/dist/types/studio/types/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +6 -1
- package/src/config.ts +2 -0
- package/src/studio/define-block.ts +14 -0
- package/src/studio/define-field.ts +5 -0
- package/src/studio/define-schema.ts +5 -0
- package/src/studio/index.ts +5 -0
- package/src/studio/types/block.ts +29 -0
- package/src/studio/types/field-values.ts +7 -0
- package/src/studio/types/field.ts +28 -0
- package/src/studio/types/index.ts +4 -0
- package/src/types/index.ts +2 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./define-block"), exports);
|
|
19
|
+
__exportStar(require("./define-field"), exports);
|
|
20
|
+
__exportStar(require("./define-schema"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./block"), exports);
|
|
18
|
+
__exportStar(require("./field"), exports);
|
|
19
|
+
__exportStar(require("./field-values"), exports);
|
package/dist/cjs/types/index.js
CHANGED
package/dist/esm/config.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { AxiosError } from "axios";
|
|
2
|
+
import type { BlockDefinition } from "./studio/types";
|
|
2
3
|
export interface BackstageUserConfig {
|
|
3
4
|
accountId?: string | undefined;
|
|
4
5
|
token?: string | undefined;
|
|
5
6
|
baseURL?: string;
|
|
7
|
+
blocks?: BlockDefinition<any>[] | undefined;
|
|
6
8
|
onError?: (error: AxiosError) => void;
|
|
7
9
|
}
|
|
8
10
|
export declare function defineConfig(config: BackstageUserConfig): BackstageUserConfig;
|
package/dist/esm/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAQD,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAM7E;AAED,wBAAgB,eAAe,IAAI,mBAAmB,CAGrD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BlockSchema, BlockDefinition, BlockComponentProps, Field } from "./types";
|
|
2
|
+
export type FieldValues<TFields extends Record<string, Field<any>>> = {
|
|
3
|
+
[K in keyof TFields]: TFields[K]["value"];
|
|
4
|
+
};
|
|
5
|
+
export declare function defineBlock<TFields extends Record<string, Field<any>>>(options: {
|
|
6
|
+
name: string;
|
|
7
|
+
slug: string;
|
|
8
|
+
schema: BlockSchema<TFields>;
|
|
9
|
+
component: React.ComponentType<BlockComponentProps<FieldValues<TFields>>>;
|
|
10
|
+
}): BlockDefinition<TFields>;
|
|
11
|
+
//# sourceMappingURL=define-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-block.d.ts","sourceRoot":"","sources":["../../../src/studio/define-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEnF,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI;KACnE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3E,GAAG,eAAe,CAAC,OAAO,CAAC,CAE3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-field.d.ts","sourceRoot":"","sources":["../../../src/studio/define-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAEvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-schema.d.ts","sourceRoot":"","sources":["../../../src/studio/define-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,wBAEpG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/studio/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FieldValues } from "../define-block";
|
|
2
|
+
import { Field } from "./field";
|
|
3
|
+
export interface BlockSchema<TFields extends Record<string, Field<any>>> {
|
|
4
|
+
fields: TFields;
|
|
5
|
+
properties?: BlockProperties;
|
|
6
|
+
}
|
|
7
|
+
export interface BlockDefinition<TFields extends Record<string, Field<any>>> {
|
|
8
|
+
name: string;
|
|
9
|
+
schema: BlockSchema<TFields>;
|
|
10
|
+
component: React.ComponentType<BlockComponentProps<FieldValues<TFields>>>;
|
|
11
|
+
}
|
|
12
|
+
export interface BuilderBlock<TFields extends Record<string, Field<any>>> {
|
|
13
|
+
id: string;
|
|
14
|
+
type: string;
|
|
15
|
+
fields: TFields;
|
|
16
|
+
properties?: BlockProperties;
|
|
17
|
+
}
|
|
18
|
+
export interface BlockProperties {
|
|
19
|
+
customClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface BlockComponentProps<TFieldValues extends Record<string, any>> {
|
|
22
|
+
block: BuilderBlock<TFieldValues>;
|
|
23
|
+
onFieldChange: (blockId: string, fieldName: keyof TFieldValues, value: any) => void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3E,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACrF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-values.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/field-values.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type FieldType = "boolean" | "event_select" | "form_select" | "image" | "image_list" | "list_array" | "media" | "menu_select" | "number" | "press_select" | "repeater" | "rich_text" | "separator" | "spacer" | "text" | "textarea" | "url";
|
|
2
|
+
export interface Field<TValue = any> {
|
|
3
|
+
name: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
type: FieldType;
|
|
6
|
+
value?: TValue;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
options?: Array<{
|
|
10
|
+
label: string;
|
|
11
|
+
value: any;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/field.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,cAAc,GACd,aAAa,GACb,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,aAAa,GACb,QAAQ,GACR,cAAc,GACd,UAAU,GACV,WAAW,GACX,WAAW,GACX,QAAQ,GACR,MAAM,GACN,UAAU,GACV,KAAK,CAAC;AAEV,MAAM,WAAW,KAAK,CAAC,MAAM,GAAG,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAExB,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAE1B,cAAc,uBAAuB,CAAC"}
|
package/dist/esm/types/index.js
CHANGED
package/dist/types/config.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { AxiosError } from "axios";
|
|
2
|
+
import type { BlockDefinition } from "./studio/types";
|
|
2
3
|
export interface BackstageUserConfig {
|
|
3
4
|
accountId?: string | undefined;
|
|
4
5
|
token?: string | undefined;
|
|
5
6
|
baseURL?: string;
|
|
7
|
+
blocks?: BlockDefinition<any>[] | undefined;
|
|
6
8
|
onError?: (error: AxiosError) => void;
|
|
7
9
|
}
|
|
8
10
|
export declare function defineConfig(config: BackstageUserConfig): BackstageUserConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAQD,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAM7E;AAED,wBAAgB,eAAe,IAAI,mBAAmB,CAGrD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BlockSchema, BlockDefinition, BlockComponentProps, Field } from "./types";
|
|
2
|
+
export type FieldValues<TFields extends Record<string, Field<any>>> = {
|
|
3
|
+
[K in keyof TFields]: TFields[K]["value"];
|
|
4
|
+
};
|
|
5
|
+
export declare function defineBlock<TFields extends Record<string, Field<any>>>(options: {
|
|
6
|
+
name: string;
|
|
7
|
+
slug: string;
|
|
8
|
+
schema: BlockSchema<TFields>;
|
|
9
|
+
component: React.ComponentType<BlockComponentProps<FieldValues<TFields>>>;
|
|
10
|
+
}): BlockDefinition<TFields>;
|
|
11
|
+
//# sourceMappingURL=define-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-block.d.ts","sourceRoot":"","sources":["../../../src/studio/define-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEnF,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI;KACnE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3E,GAAG,eAAe,CAAC,OAAO,CAAC,CAE3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-field.d.ts","sourceRoot":"","sources":["../../../src/studio/define-field.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAEvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-schema.d.ts","sourceRoot":"","sources":["../../../src/studio/define-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,wBAEpG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/studio/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FieldValues } from "../define-block";
|
|
2
|
+
import { Field } from "./field";
|
|
3
|
+
export interface BlockSchema<TFields extends Record<string, Field<any>>> {
|
|
4
|
+
fields: TFields;
|
|
5
|
+
properties?: BlockProperties;
|
|
6
|
+
}
|
|
7
|
+
export interface BlockDefinition<TFields extends Record<string, Field<any>>> {
|
|
8
|
+
name: string;
|
|
9
|
+
schema: BlockSchema<TFields>;
|
|
10
|
+
component: React.ComponentType<BlockComponentProps<FieldValues<TFields>>>;
|
|
11
|
+
}
|
|
12
|
+
export interface BuilderBlock<TFields extends Record<string, Field<any>>> {
|
|
13
|
+
id: string;
|
|
14
|
+
type: string;
|
|
15
|
+
fields: TFields;
|
|
16
|
+
properties?: BlockProperties;
|
|
17
|
+
}
|
|
18
|
+
export interface BlockProperties {
|
|
19
|
+
customClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface BlockComponentProps<TFieldValues extends Record<string, any>> {
|
|
22
|
+
block: BuilderBlock<TFieldValues>;
|
|
23
|
+
onFieldChange: (blockId: string, fieldName: keyof TFieldValues, value: any) => void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3E,KAAK,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAClC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACrF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-values.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/field-values.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type FieldType = "boolean" | "event_select" | "form_select" | "image" | "image_list" | "list_array" | "media" | "menu_select" | "number" | "press_select" | "repeater" | "rich_text" | "separator" | "spacer" | "text" | "textarea" | "url";
|
|
2
|
+
export interface Field<TValue = any> {
|
|
3
|
+
name: string;
|
|
4
|
+
slug: string;
|
|
5
|
+
type: FieldType;
|
|
6
|
+
value?: TValue;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
options?: Array<{
|
|
10
|
+
label: string;
|
|
11
|
+
value: any;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/field.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,cAAc,GACd,aAAa,GACb,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,OAAO,GACP,aAAa,GACb,QAAQ,GACR,cAAc,GACd,UAAU,GACV,WAAW,GACX,WAAW,GACX,QAAQ,GACR,MAAM,GACN,UAAU,GACV,KAAK,CAAC;AAEV,MAAM,WAAW,KAAK,CAAC,MAAM,GAAG,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CAChD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/studio/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAExB,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAE1B,cAAc,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antlur/backstage",
|
|
3
3
|
"author": "Anthony Holmes",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"description": "A simple client for Backstage CMS",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
7
7
|
"module": "./dist/esm/index.js",
|
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
"import": "./dist/esm/types/index.js",
|
|
18
18
|
"types": "./dist/types/types/*.d.ts"
|
|
19
19
|
},
|
|
20
|
+
"./studio": {
|
|
21
|
+
"require": "./dist/cjs/studio/index.js",
|
|
22
|
+
"import": "./dist/esm/studio/index.js",
|
|
23
|
+
"types": "./dist/types/studio/*.d.ts"
|
|
24
|
+
},
|
|
20
25
|
"./*": {
|
|
21
26
|
"require": "./dist/cjs/*.js",
|
|
22
27
|
"import": "./dist/esm/*.js",
|
package/src/config.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AxiosError } from "axios";
|
|
2
|
+
import type { BlockDefinition } from "./studio/types";
|
|
2
3
|
|
|
3
4
|
const ROOT = process.cwd();
|
|
4
5
|
const CONFIG_PATH = process.env.BACKSTAGE_CONFIG_PATH || "./backstage.config";
|
|
@@ -8,6 +9,7 @@ export interface BackstageUserConfig {
|
|
|
8
9
|
accountId?: string | undefined;
|
|
9
10
|
token?: string | undefined;
|
|
10
11
|
baseURL?: string;
|
|
12
|
+
blocks?: BlockDefinition<any>[] | undefined;
|
|
11
13
|
onError?: (error: AxiosError) => void;
|
|
12
14
|
}
|
|
13
15
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BlockSchema, BlockDefinition, BlockComponentProps, Field } from "./types";
|
|
2
|
+
|
|
3
|
+
export type FieldValues<TFields extends Record<string, Field<any>>> = {
|
|
4
|
+
[K in keyof TFields]: TFields[K]["value"];
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export function defineBlock<TFields extends Record<string, Field<any>>>(options: {
|
|
8
|
+
name: string;
|
|
9
|
+
slug: string;
|
|
10
|
+
schema: BlockSchema<TFields>;
|
|
11
|
+
component: React.ComponentType<BlockComponentProps<FieldValues<TFields>>>; // Correct typing here
|
|
12
|
+
}): BlockDefinition<TFields> {
|
|
13
|
+
return options;
|
|
14
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FieldValues } from "../define-block";
|
|
2
|
+
import { Field } from "./field";
|
|
3
|
+
|
|
4
|
+
export interface BlockSchema<TFields extends Record<string, Field<any>>> {
|
|
5
|
+
fields: TFields;
|
|
6
|
+
properties?: BlockProperties;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface BlockDefinition<TFields extends Record<string, Field<any>>> {
|
|
10
|
+
name: string;
|
|
11
|
+
schema: BlockSchema<TFields>;
|
|
12
|
+
component: React.ComponentType<BlockComponentProps<FieldValues<TFields>>>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface BuilderBlock<TFields extends Record<string, Field<any>>> {
|
|
16
|
+
id: string;
|
|
17
|
+
type: string;
|
|
18
|
+
fields: TFields;
|
|
19
|
+
properties?: BlockProperties;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface BlockProperties {
|
|
23
|
+
customClassName?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface BlockComponentProps<TFieldValues extends Record<string, any>> {
|
|
27
|
+
block: BuilderBlock<TFieldValues>;
|
|
28
|
+
onFieldChange: (blockId: string, fieldName: keyof TFieldValues, value: any) => void;
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type FieldType =
|
|
2
|
+
| "boolean"
|
|
3
|
+
| "event_select"
|
|
4
|
+
| "form_select"
|
|
5
|
+
| "image"
|
|
6
|
+
| "image_list"
|
|
7
|
+
| "list_array"
|
|
8
|
+
| "media"
|
|
9
|
+
| "menu_select"
|
|
10
|
+
| "number"
|
|
11
|
+
| "press_select"
|
|
12
|
+
| "repeater"
|
|
13
|
+
| "rich_text"
|
|
14
|
+
| "separator"
|
|
15
|
+
| "spacer"
|
|
16
|
+
| "text"
|
|
17
|
+
| "textarea"
|
|
18
|
+
| "url";
|
|
19
|
+
|
|
20
|
+
export interface Field<TValue = any> {
|
|
21
|
+
name: string;
|
|
22
|
+
slug: string;
|
|
23
|
+
type: FieldType;
|
|
24
|
+
value?: TValue;
|
|
25
|
+
placeholder?: string;
|
|
26
|
+
required?: boolean;
|
|
27
|
+
options?: Array<{ label: string; value: any }>;
|
|
28
|
+
}
|