@plumeria/core 2.2.2 → 2.2.4
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/index.d.ts +6 -6
- package/dist/index.js +71 -64
- package/dist/index.mjs +71 -64
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -4,12 +4,12 @@ declare const x: (className: string, varSet: XVariableSet) => ReturnX;
|
|
|
4
4
|
|
|
5
5
|
declare class StyleSheet {
|
|
6
6
|
private constructor();
|
|
7
|
-
static create<const T extends Record<string, CSSProperties>>(
|
|
8
|
-
static props(...
|
|
9
|
-
static keyframes(
|
|
10
|
-
static viewTransition(
|
|
11
|
-
static createTheme<const T extends CreateTheme>(
|
|
12
|
-
static createStatic<const T extends CreateValues>(
|
|
7
|
+
static create<const T extends Record<string, CSSProperties>>(rule: CreateStyleType<T>): ReturnType<T>;
|
|
8
|
+
static props(...rules: (false | Readonly<CSSProperties> | null | undefined)[]): string;
|
|
9
|
+
static keyframes(rule: CreateKeyframes): string;
|
|
10
|
+
static viewTransition(rule: ViewTransitionOptions): string;
|
|
11
|
+
static createTheme<const T extends CreateTheme>(rule: T): ReturnVariableType<T>;
|
|
12
|
+
static createStatic<const T extends CreateValues>(rule: T): T;
|
|
13
13
|
}
|
|
14
14
|
declare const css: typeof StyleSheet;
|
|
15
15
|
|
package/dist/index.js
CHANGED
|
@@ -2,12 +2,12 @@ const require_css = require('./css.js');
|
|
|
2
2
|
const zss_engine = require_css.__toESM(require("zss-engine"));
|
|
3
3
|
|
|
4
4
|
const styleAtomMap = new WeakMap();
|
|
5
|
-
function create(
|
|
5
|
+
function create(rule) {
|
|
6
6
|
const result = {};
|
|
7
|
-
Object.entries(
|
|
7
|
+
Object.entries(rule).forEach(([key, styleRule]) => {
|
|
8
8
|
const flat = {};
|
|
9
9
|
const nonFlat = {};
|
|
10
|
-
(0, zss_engine.splitAtomicAndNested)(
|
|
10
|
+
(0, zss_engine.splitAtomicAndNested)(styleRule, flat, nonFlat);
|
|
11
11
|
const finalFlat = (0, zss_engine.overrideLonghand)(flat);
|
|
12
12
|
const records = [];
|
|
13
13
|
Object.entries(finalFlat).forEach(([prop, value]) => {
|
|
@@ -49,40 +49,46 @@ function create(object) {
|
|
|
49
49
|
if (atRule.startsWith("@media") || atRule.startsWith("@container")) nonFlatQuery[atRule] = nestedObj;
|
|
50
50
|
else nonFlatBase[atRule] = nestedObj;
|
|
51
51
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const nonFlatObj = { [key]: targetNonFlat };
|
|
52
|
+
Object.entries(nonFlatBase).forEach(([selector, style]) => {
|
|
53
|
+
const nonFlatObj = { [key]: { [selector]: style } };
|
|
55
54
|
const nonFlatHash = (0, zss_engine.genBase36Hash)(nonFlatObj, 1, 7);
|
|
56
55
|
const { styleSheet } = (0, zss_engine.transpile)(nonFlatObj, nonFlatHash);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
records.push({
|
|
57
|
+
key: selector,
|
|
58
|
+
hash: nonFlatHash,
|
|
59
|
+
sheet: styleSheet
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
Object.entries(nonFlatQuery).forEach(([atRule, nestedStyles]) => {
|
|
63
|
+
Object.entries(nestedStyles).forEach(([pseudoSelector, style]) => {
|
|
64
|
+
const nonFlatObj = { [key]: { [atRule]: { [pseudoSelector]: style } } };
|
|
65
|
+
const nonFlatHash = (0, zss_engine.genBase36Hash)(nonFlatObj, 1, 7);
|
|
66
|
+
const { styleSheet } = (0, zss_engine.transpile)(nonFlatObj, nonFlatHash);
|
|
67
|
+
const finalSheet = styleSheet.replace(`.${nonFlatHash}`, `.${nonFlatHash}:not(#\\#)`);
|
|
68
|
+
records.push({
|
|
69
|
+
key: atRule + pseudoSelector,
|
|
70
|
+
hash: nonFlatHash,
|
|
71
|
+
sheet: finalSheet
|
|
66
72
|
});
|
|
67
73
|
});
|
|
68
74
|
});
|
|
69
75
|
}
|
|
70
|
-
styleAtomMap.set(
|
|
71
|
-
Object.defineProperty(result, key, { get: () => Object.freeze(
|
|
76
|
+
styleAtomMap.set(styleRule, records);
|
|
77
|
+
Object.defineProperty(result, key, { get: () => Object.freeze(styleRule) });
|
|
72
78
|
});
|
|
73
79
|
return Object.freeze(result);
|
|
74
80
|
}
|
|
75
81
|
|
|
76
82
|
const setSheets = new Set();
|
|
77
|
-
function props(...
|
|
83
|
+
function props(...rules) {
|
|
78
84
|
const seenSheets = new Set();
|
|
79
85
|
const baseSheets = [];
|
|
80
86
|
const classList = [];
|
|
81
87
|
const chosen = new Map();
|
|
82
88
|
const rightmostKeys = [];
|
|
83
89
|
const orderedKeys = [];
|
|
84
|
-
for (let i =
|
|
85
|
-
const obj =
|
|
90
|
+
for (let i = rules.length - 1; i >= 0; i--) {
|
|
91
|
+
const obj = rules[i];
|
|
86
92
|
if (!obj) continue;
|
|
87
93
|
const records = styleAtomMap.get(obj);
|
|
88
94
|
if (!records) continue;
|
|
@@ -92,13 +98,13 @@ function props(...objects) {
|
|
|
92
98
|
propsIdx: i
|
|
93
99
|
});
|
|
94
100
|
}
|
|
95
|
-
for (let i = 0; i <
|
|
96
|
-
const obj =
|
|
101
|
+
for (let i = 0; i < rules.length; i++) {
|
|
102
|
+
const obj = rules[i];
|
|
97
103
|
if (!obj) continue;
|
|
98
104
|
const records = styleAtomMap.get(obj);
|
|
99
105
|
if (!records) continue;
|
|
100
106
|
for (const { key } of records) if (chosen.has(key) && chosen.get(key).propsIdx === i) {
|
|
101
|
-
if (i ===
|
|
107
|
+
if (i === rules.length - 1) rightmostKeys.push({
|
|
102
108
|
...chosen.get(key),
|
|
103
109
|
key
|
|
104
110
|
});
|
|
@@ -126,55 +132,56 @@ function props(...objects) {
|
|
|
126
132
|
return classList.join(" ");
|
|
127
133
|
}
|
|
128
134
|
|
|
129
|
-
function global(
|
|
130
|
-
const { styleSheet } = (0, zss_engine.transpile)(
|
|
135
|
+
function global(rule) {
|
|
136
|
+
const { styleSheet } = (0, zss_engine.transpile)(rule, void 0, "--global");
|
|
131
137
|
if (typeof require_css.gQueue.promise === "undefined") require_css.gQueue.init();
|
|
132
138
|
require_css.gQueue.resolve(styleSheet);
|
|
133
139
|
}
|
|
134
140
|
|
|
135
|
-
const keyframes = (
|
|
136
|
-
const hash = (0, zss_engine.genBase36Hash)(
|
|
141
|
+
const keyframes = (rule) => {
|
|
142
|
+
const hash = (0, zss_engine.genBase36Hash)(rule, 1, 8);
|
|
137
143
|
const ident = `kf-${hash}`;
|
|
138
|
-
global({ [`@keyframes ${ident}`]:
|
|
144
|
+
global({ [`@keyframes ${ident}`]: rule });
|
|
139
145
|
return ident;
|
|
140
146
|
};
|
|
141
147
|
|
|
142
|
-
const viewTransition = (
|
|
143
|
-
const hash = (0, zss_engine.genBase36Hash)(
|
|
148
|
+
const viewTransition = (rule) => {
|
|
149
|
+
const hash = (0, zss_engine.genBase36Hash)(rule, 1, 8);
|
|
144
150
|
const ident = `vt-${hash}`;
|
|
145
151
|
global({
|
|
146
|
-
[`::view-transition-group(${ident})`]:
|
|
147
|
-
[`::view-transition-image-pair(${ident})`]:
|
|
148
|
-
[`::view-transition-old(${ident})`]:
|
|
149
|
-
[`::view-transition-new(${ident})`]:
|
|
152
|
+
[`::view-transition-group(${ident})`]: rule.group,
|
|
153
|
+
[`::view-transition-image-pair(${ident})`]: rule.imagePair,
|
|
154
|
+
[`::view-transition-old(${ident})`]: rule.old,
|
|
155
|
+
[`::view-transition-new(${ident})`]: rule.new
|
|
150
156
|
});
|
|
151
157
|
return ident;
|
|
152
158
|
};
|
|
153
159
|
|
|
154
|
-
const createTheme = (
|
|
160
|
+
const createTheme = (rule) => {
|
|
155
161
|
const styles = {};
|
|
156
162
|
const result = {};
|
|
157
|
-
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
163
|
+
for (const key in rule) {
|
|
164
|
+
const varName = `${(0, zss_engine.camelToKebabCase)(key)}`;
|
|
165
|
+
const varKey = `--${varName}`;
|
|
166
|
+
result[key] = `var(--${varName})`;
|
|
167
|
+
const themeMap = rule[key];
|
|
168
|
+
for (const themeKey in themeMap) {
|
|
169
|
+
const value = themeMap[themeKey];
|
|
170
|
+
const isQuery = themeKey.startsWith("@media") || themeKey.startsWith("@container");
|
|
171
|
+
const selector = isQuery || themeKey === "default" ? ":root" : `:root[data-theme="${themeKey}"]`;
|
|
172
|
+
const target = styles[selector] ||= {};
|
|
173
|
+
if (isQuery) {
|
|
174
|
+
const queryObj = target[themeKey] ||= {};
|
|
175
|
+
queryObj[varKey] = value;
|
|
176
|
+
} else target[varKey] = value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
172
179
|
global(styles);
|
|
173
180
|
return result;
|
|
174
181
|
};
|
|
175
182
|
|
|
176
|
-
const createStatic = (
|
|
177
|
-
return
|
|
183
|
+
const createStatic = (rule) => {
|
|
184
|
+
return rule;
|
|
178
185
|
};
|
|
179
186
|
|
|
180
187
|
const x = (className, varSet) => ({
|
|
@@ -184,23 +191,23 @@ const x = (className, varSet) => ({
|
|
|
184
191
|
|
|
185
192
|
var StyleSheet = class {
|
|
186
193
|
constructor() {}
|
|
187
|
-
static create(
|
|
188
|
-
return create(
|
|
194
|
+
static create(rule) {
|
|
195
|
+
return create(rule);
|
|
189
196
|
}
|
|
190
|
-
static props(...
|
|
191
|
-
return props(...
|
|
197
|
+
static props(...rules) {
|
|
198
|
+
return props(...rules);
|
|
192
199
|
}
|
|
193
|
-
static keyframes(
|
|
194
|
-
return keyframes(
|
|
200
|
+
static keyframes(rule) {
|
|
201
|
+
return keyframes(rule);
|
|
195
202
|
}
|
|
196
|
-
static viewTransition(
|
|
197
|
-
return viewTransition(
|
|
203
|
+
static viewTransition(rule) {
|
|
204
|
+
return viewTransition(rule);
|
|
198
205
|
}
|
|
199
|
-
static createTheme(
|
|
200
|
-
return createTheme(
|
|
206
|
+
static createTheme(rule) {
|
|
207
|
+
return createTheme(rule);
|
|
201
208
|
}
|
|
202
|
-
static createStatic(
|
|
203
|
-
return createStatic(
|
|
209
|
+
static createStatic(rule) {
|
|
210
|
+
return createStatic(rule);
|
|
204
211
|
}
|
|
205
212
|
};
|
|
206
213
|
const css = StyleSheet;
|
package/dist/index.mjs
CHANGED
|
@@ -2,12 +2,12 @@ import { gQueue, pQueue } from "./css.mjs";
|
|
|
2
2
|
import { camelToKebabCase, genBase36Hash, overrideLonghand, processAtomicProps, splitAtomicAndNested, transpile } from "zss-engine";
|
|
3
3
|
|
|
4
4
|
const styleAtomMap = new WeakMap();
|
|
5
|
-
function create(
|
|
5
|
+
function create(rule) {
|
|
6
6
|
const result = {};
|
|
7
|
-
Object.entries(
|
|
7
|
+
Object.entries(rule).forEach(([key, styleRule]) => {
|
|
8
8
|
const flat = {};
|
|
9
9
|
const nonFlat = {};
|
|
10
|
-
splitAtomicAndNested(
|
|
10
|
+
splitAtomicAndNested(styleRule, flat, nonFlat);
|
|
11
11
|
const finalFlat = overrideLonghand(flat);
|
|
12
12
|
const records = [];
|
|
13
13
|
Object.entries(finalFlat).forEach(([prop, value]) => {
|
|
@@ -49,40 +49,46 @@ function create(object) {
|
|
|
49
49
|
if (atRule.startsWith("@media") || atRule.startsWith("@container")) nonFlatQuery[atRule] = nestedObj;
|
|
50
50
|
else nonFlatBase[atRule] = nestedObj;
|
|
51
51
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const nonFlatObj = { [key]: targetNonFlat };
|
|
52
|
+
Object.entries(nonFlatBase).forEach(([selector, style]) => {
|
|
53
|
+
const nonFlatObj = { [key]: { [selector]: style } };
|
|
55
54
|
const nonFlatHash = genBase36Hash(nonFlatObj, 1, 7);
|
|
56
55
|
const { styleSheet } = transpile(nonFlatObj, nonFlatHash);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
records.push({
|
|
57
|
+
key: selector,
|
|
58
|
+
hash: nonFlatHash,
|
|
59
|
+
sheet: styleSheet
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
Object.entries(nonFlatQuery).forEach(([atRule, nestedStyles]) => {
|
|
63
|
+
Object.entries(nestedStyles).forEach(([pseudoSelector, style]) => {
|
|
64
|
+
const nonFlatObj = { [key]: { [atRule]: { [pseudoSelector]: style } } };
|
|
65
|
+
const nonFlatHash = genBase36Hash(nonFlatObj, 1, 7);
|
|
66
|
+
const { styleSheet } = transpile(nonFlatObj, nonFlatHash);
|
|
67
|
+
const finalSheet = styleSheet.replace(`.${nonFlatHash}`, `.${nonFlatHash}:not(#\\#)`);
|
|
68
|
+
records.push({
|
|
69
|
+
key: atRule + pseudoSelector,
|
|
70
|
+
hash: nonFlatHash,
|
|
71
|
+
sheet: finalSheet
|
|
66
72
|
});
|
|
67
73
|
});
|
|
68
74
|
});
|
|
69
75
|
}
|
|
70
|
-
styleAtomMap.set(
|
|
71
|
-
Object.defineProperty(result, key, { get: () => Object.freeze(
|
|
76
|
+
styleAtomMap.set(styleRule, records);
|
|
77
|
+
Object.defineProperty(result, key, { get: () => Object.freeze(styleRule) });
|
|
72
78
|
});
|
|
73
79
|
return Object.freeze(result);
|
|
74
80
|
}
|
|
75
81
|
|
|
76
82
|
const setSheets = new Set();
|
|
77
|
-
function props(...
|
|
83
|
+
function props(...rules) {
|
|
78
84
|
const seenSheets = new Set();
|
|
79
85
|
const baseSheets = [];
|
|
80
86
|
const classList = [];
|
|
81
87
|
const chosen = new Map();
|
|
82
88
|
const rightmostKeys = [];
|
|
83
89
|
const orderedKeys = [];
|
|
84
|
-
for (let i =
|
|
85
|
-
const obj =
|
|
90
|
+
for (let i = rules.length - 1; i >= 0; i--) {
|
|
91
|
+
const obj = rules[i];
|
|
86
92
|
if (!obj) continue;
|
|
87
93
|
const records = styleAtomMap.get(obj);
|
|
88
94
|
if (!records) continue;
|
|
@@ -92,13 +98,13 @@ function props(...objects) {
|
|
|
92
98
|
propsIdx: i
|
|
93
99
|
});
|
|
94
100
|
}
|
|
95
|
-
for (let i = 0; i <
|
|
96
|
-
const obj =
|
|
101
|
+
for (let i = 0; i < rules.length; i++) {
|
|
102
|
+
const obj = rules[i];
|
|
97
103
|
if (!obj) continue;
|
|
98
104
|
const records = styleAtomMap.get(obj);
|
|
99
105
|
if (!records) continue;
|
|
100
106
|
for (const { key } of records) if (chosen.has(key) && chosen.get(key).propsIdx === i) {
|
|
101
|
-
if (i ===
|
|
107
|
+
if (i === rules.length - 1) rightmostKeys.push({
|
|
102
108
|
...chosen.get(key),
|
|
103
109
|
key
|
|
104
110
|
});
|
|
@@ -126,55 +132,56 @@ function props(...objects) {
|
|
|
126
132
|
return classList.join(" ");
|
|
127
133
|
}
|
|
128
134
|
|
|
129
|
-
function global(
|
|
130
|
-
const { styleSheet } = transpile(
|
|
135
|
+
function global(rule) {
|
|
136
|
+
const { styleSheet } = transpile(rule, void 0, "--global");
|
|
131
137
|
if (typeof gQueue.promise === "undefined") gQueue.init();
|
|
132
138
|
gQueue.resolve(styleSheet);
|
|
133
139
|
}
|
|
134
140
|
|
|
135
|
-
const keyframes = (
|
|
136
|
-
const hash = genBase36Hash(
|
|
141
|
+
const keyframes = (rule) => {
|
|
142
|
+
const hash = genBase36Hash(rule, 1, 8);
|
|
137
143
|
const ident = `kf-${hash}`;
|
|
138
|
-
global({ [`@keyframes ${ident}`]:
|
|
144
|
+
global({ [`@keyframes ${ident}`]: rule });
|
|
139
145
|
return ident;
|
|
140
146
|
};
|
|
141
147
|
|
|
142
|
-
const viewTransition = (
|
|
143
|
-
const hash = genBase36Hash(
|
|
148
|
+
const viewTransition = (rule) => {
|
|
149
|
+
const hash = genBase36Hash(rule, 1, 8);
|
|
144
150
|
const ident = `vt-${hash}`;
|
|
145
151
|
global({
|
|
146
|
-
[`::view-transition-group(${ident})`]:
|
|
147
|
-
[`::view-transition-image-pair(${ident})`]:
|
|
148
|
-
[`::view-transition-old(${ident})`]:
|
|
149
|
-
[`::view-transition-new(${ident})`]:
|
|
152
|
+
[`::view-transition-group(${ident})`]: rule.group,
|
|
153
|
+
[`::view-transition-image-pair(${ident})`]: rule.imagePair,
|
|
154
|
+
[`::view-transition-old(${ident})`]: rule.old,
|
|
155
|
+
[`::view-transition-new(${ident})`]: rule.new
|
|
150
156
|
});
|
|
151
157
|
return ident;
|
|
152
158
|
};
|
|
153
159
|
|
|
154
|
-
const createTheme = (
|
|
160
|
+
const createTheme = (rule) => {
|
|
155
161
|
const styles = {};
|
|
156
162
|
const result = {};
|
|
157
|
-
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
163
|
+
for (const key in rule) {
|
|
164
|
+
const varName = `${camelToKebabCase(key)}`;
|
|
165
|
+
const varKey = `--${varName}`;
|
|
166
|
+
result[key] = `var(--${varName})`;
|
|
167
|
+
const themeMap = rule[key];
|
|
168
|
+
for (const themeKey in themeMap) {
|
|
169
|
+
const value = themeMap[themeKey];
|
|
170
|
+
const isQuery = themeKey.startsWith("@media") || themeKey.startsWith("@container");
|
|
171
|
+
const selector = isQuery || themeKey === "default" ? ":root" : `:root[data-theme="${themeKey}"]`;
|
|
172
|
+
const target = styles[selector] ||= {};
|
|
173
|
+
if (isQuery) {
|
|
174
|
+
const queryObj = target[themeKey] ||= {};
|
|
175
|
+
queryObj[varKey] = value;
|
|
176
|
+
} else target[varKey] = value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
172
179
|
global(styles);
|
|
173
180
|
return result;
|
|
174
181
|
};
|
|
175
182
|
|
|
176
|
-
const createStatic = (
|
|
177
|
-
return
|
|
183
|
+
const createStatic = (rule) => {
|
|
184
|
+
return rule;
|
|
178
185
|
};
|
|
179
186
|
|
|
180
187
|
const x = (className, varSet) => ({
|
|
@@ -184,23 +191,23 @@ const x = (className, varSet) => ({
|
|
|
184
191
|
|
|
185
192
|
var StyleSheet = class {
|
|
186
193
|
constructor() {}
|
|
187
|
-
static create(
|
|
188
|
-
return create(
|
|
194
|
+
static create(rule) {
|
|
195
|
+
return create(rule);
|
|
189
196
|
}
|
|
190
|
-
static props(...
|
|
191
|
-
return props(...
|
|
197
|
+
static props(...rules) {
|
|
198
|
+
return props(...rules);
|
|
192
199
|
}
|
|
193
|
-
static keyframes(
|
|
194
|
-
return keyframes(
|
|
200
|
+
static keyframes(rule) {
|
|
201
|
+
return keyframes(rule);
|
|
195
202
|
}
|
|
196
|
-
static viewTransition(
|
|
197
|
-
return viewTransition(
|
|
203
|
+
static viewTransition(rule) {
|
|
204
|
+
return viewTransition(rule);
|
|
198
205
|
}
|
|
199
|
-
static createTheme(
|
|
200
|
-
return createTheme(
|
|
206
|
+
static createTheme(rule) {
|
|
207
|
+
return createTheme(rule);
|
|
201
208
|
}
|
|
202
|
-
static createStatic(
|
|
203
|
-
return createStatic(
|
|
209
|
+
static createStatic(rule) {
|
|
210
|
+
return createStatic(rule);
|
|
204
211
|
}
|
|
205
212
|
};
|
|
206
213
|
const css = StyleSheet;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumeria/core",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.4",
|
|
4
4
|
"description": "An atomic CSS runtime designed to disappear.",
|
|
5
5
|
"author": "Refirst 11",
|
|
6
6
|
"license": "MIT",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"stylesheet.css"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"zss-engine": "
|
|
48
|
+
"zss-engine": "2.0.0"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public",
|