@appsemble/cli 0.40.3-test.4 → 0.40.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/README.md +3 -74
- package/index.js +0 -2
- package/lib/app.d.ts +1 -2
- package/lib/app.js +3 -2
- package/package.json +7 -22
- package/templates/apps/empty/app-definition.yaml +2 -2
- package/templates/blocks/mini-jsx/package.json +1 -1
- package/templates/blocks/preact/package.json +2 -2
- package/templates/blocks/vanilla/package.json +1 -1
- package/commands/serve.d.ts +0 -14
- package/commands/serve.js +0 -305
- package/lib/createServers.d.ts +0 -15
- package/lib/createServers.js +0 -62
- package/server/argv.d.ts +0 -117
- package/server/argv.js +0 -25
- package/server/controllers/apps/actions/index.d.ts +0 -5
- package/server/controllers/apps/actions/index.js +0 -6
- package/server/controllers/apps/actions/proxyDelete.d.ts +0 -2
- package/server/controllers/apps/actions/proxyDelete.js +0 -4
- package/server/controllers/apps/actions/proxyGet.d.ts +0 -2
- package/server/controllers/apps/actions/proxyGet.js +0 -4
- package/server/controllers/apps/actions/proxyPatch.d.ts +0 -2
- package/server/controllers/apps/actions/proxyPatch.js +0 -4
- package/server/controllers/apps/actions/proxyPost.d.ts +0 -2
- package/server/controllers/apps/actions/proxyPost.js +0 -4
- package/server/controllers/apps/actions/proxyPut.d.ts +0 -2
- package/server/controllers/apps/actions/proxyPut.js +0 -4
- package/server/controllers/apps/index.d.ts +0 -2
- package/server/controllers/apps/index.js +0 -3
- package/server/controllers/apps/members/current/getCurrentAppMember.d.ts +0 -2
- package/server/controllers/apps/members/current/getCurrentAppMember.js +0 -4
- package/server/controllers/apps/members/current/groups/getCurrentAppMemberGroups.d.ts +0 -2
- package/server/controllers/apps/members/current/groups/getCurrentAppMemberGroups.js +0 -4
- package/server/controllers/apps/members/current/groups/index.d.ts +0 -1
- package/server/controllers/apps/members/current/groups/index.js +0 -2
- package/server/controllers/apps/members/current/index.d.ts +0 -2
- package/server/controllers/apps/members/current/index.js +0 -3
- package/server/controllers/apps/members/index.d.ts +0 -1
- package/server/controllers/apps/members/index.js +0 -2
- package/server/controllers/common/apps/assets/getAppAssetById.d.ts +0 -2
- package/server/controllers/common/apps/assets/getAppAssetById.js +0 -4
- package/server/controllers/common/apps/assets/index.d.ts +0 -1
- package/server/controllers/common/apps/assets/index.js +0 -2
- package/server/controllers/common/apps/groups/getAppGroups.d.ts +0 -2
- package/server/controllers/common/apps/groups/getAppGroups.js +0 -4
- package/server/controllers/common/apps/groups/index.d.ts +0 -1
- package/server/controllers/common/apps/groups/index.js +0 -2
- package/server/controllers/common/apps/index.d.ts +0 -5
- package/server/controllers/common/apps/index.js +0 -6
- package/server/controllers/common/apps/messages/getAppMessages.d.ts +0 -2
- package/server/controllers/common/apps/messages/getAppMessages.js +0 -4
- package/server/controllers/common/apps/messages/index.d.ts +0 -1
- package/server/controllers/common/apps/messages/index.js +0 -2
- package/server/controllers/common/apps/resources/countAppResources.d.ts +0 -2
- package/server/controllers/common/apps/resources/countAppResources.js +0 -4
- package/server/controllers/common/apps/resources/createAppResource.d.ts +0 -2
- package/server/controllers/common/apps/resources/createAppResource.js +0 -4
- package/server/controllers/common/apps/resources/deleteAppResource.d.ts +0 -2
- package/server/controllers/common/apps/resources/deleteAppResource.js +0 -4
- package/server/controllers/common/apps/resources/getAppResourceById.d.ts +0 -2
- package/server/controllers/common/apps/resources/getAppResourceById.js +0 -4
- package/server/controllers/common/apps/resources/index.d.ts +0 -6
- package/server/controllers/common/apps/resources/index.js +0 -7
- package/server/controllers/common/apps/resources/queryAppResources.d.ts +0 -2
- package/server/controllers/common/apps/resources/queryAppResources.js +0 -4
- package/server/controllers/common/apps/resources/updateAppResource.d.ts +0 -2
- package/server/controllers/common/apps/resources/updateAppResource.js +0 -4
- package/server/controllers/common/apps/variables/getAppVariables.d.ts +0 -2
- package/server/controllers/common/apps/variables/getAppVariables.js +0 -4
- package/server/controllers/common/apps/variables/index.d.ts +0 -1
- package/server/controllers/common/apps/variables/index.js +0 -2
- package/server/controllers/common/index.d.ts +0 -1
- package/server/controllers/common/index.js +0 -2
- package/server/controllers/index.d.ts +0 -3
- package/server/controllers/index.js +0 -4
- package/server/controllers/main/apps/assets/createAppAsset.d.ts +0 -2
- package/server/controllers/main/apps/assets/createAppAsset.js +0 -4
- package/server/controllers/main/apps/assets/index.d.ts +0 -1
- package/server/controllers/main/apps/assets/index.js +0 -2
- package/server/controllers/main/apps/index.d.ts +0 -1
- package/server/controllers/main/apps/index.js +0 -2
- package/server/controllers/main/index.d.ts +0 -1
- package/server/controllers/main/index.js +0 -2
- package/server/db/index.d.ts +0 -2
- package/server/db/index.js +0 -10
- package/server/db/methods.d.ts +0 -11
- package/server/db/methods.js +0 -241
- package/server/models/Resource.d.ts +0 -16
- package/server/models/Resource.js +0 -23
- package/server/models/Theme.d.ts +0 -17
- package/server/models/Theme.js +0 -11
- package/server/options/applyAppServiceSecrets.d.ts +0 -3
- package/server/options/applyAppServiceSecrets.js +0 -2
- package/server/options/checkAppMemberAppPermissions.d.ts +0 -1
- package/server/options/checkAppMemberAppPermissions.js +0 -4
- package/server/options/checkAppPermissions.d.ts +0 -1
- package/server/options/checkAppPermissions.js +0 -4
- package/server/options/checkAuthSubjectAppPermissions.d.ts +0 -1
- package/server/options/checkAuthSubjectAppPermissions.js +0 -4
- package/server/options/checkUserOrganizationPermissions.d.ts +0 -1
- package/server/options/checkUserOrganizationPermissions.js +0 -4
- package/server/options/createAppAsset.d.ts +0 -2
- package/server/options/createAppAsset.js +0 -14
- package/server/options/createAppResourcesWithAssets.d.ts +0 -3
- package/server/options/createAppResourcesWithAssets.js +0 -16
- package/server/options/createSettings.d.ts +0 -2
- package/server/options/createSettings.js +0 -34
- package/server/options/createTheme.d.ts +0 -2
- package/server/options/createTheme.js +0 -7
- package/server/options/deleteAppAsset.d.ts +0 -2
- package/server/options/deleteAppAsset.js +0 -15
- package/server/options/deleteAppResource.d.ts +0 -2
- package/server/options/deleteAppResource.js +0 -16
- package/server/options/email.d.ts +0 -1
- package/server/options/email.js +0 -2
- package/server/options/getApp.d.ts +0 -3
- package/server/options/getApp.js +0 -5
- package/server/options/getAppAsset.d.ts +0 -2
- package/server/options/getAppAsset.js +0 -8
- package/server/options/getAppAssets.d.ts +0 -2
- package/server/options/getAppAssets.js +0 -8
- package/server/options/getAppBlockStyles.d.ts +0 -2
- package/server/options/getAppBlockStyles.js +0 -27
- package/server/options/getAppDetails.d.ts +0 -2
- package/server/options/getAppDetails.js +0 -8
- package/server/options/getAppGroups.d.ts +0 -2
- package/server/options/getAppGroups.js +0 -4
- package/server/options/getAppIcon.d.ts +0 -2
- package/server/options/getAppIcon.js +0 -6
- package/server/options/getAppMessages.d.ts +0 -3
- package/server/options/getAppMessages.js +0 -4
- package/server/options/getAppReadmes.d.ts +0 -2
- package/server/options/getAppReadmes.js +0 -11
- package/server/options/getAppResource.d.ts +0 -3
- package/server/options/getAppResource.js +0 -5
- package/server/options/getAppResources.d.ts +0 -3
- package/server/options/getAppResources.js +0 -5
- package/server/options/getAppScreenshots.d.ts +0 -2
- package/server/options/getAppScreenshots.js +0 -20
- package/server/options/getAppStyles.d.ts +0 -2
- package/server/options/getAppStyles.js +0 -10
- package/server/options/getAppUrl.d.ts +0 -2
- package/server/options/getAppUrl.js +0 -5
- package/server/options/getAppVariables.d.ts +0 -3
- package/server/options/getAppVariables.js +0 -4
- package/server/options/getBlockAsset.d.ts +0 -2
- package/server/options/getBlockAsset.js +0 -33
- package/server/options/getBlockAssetsPaths.d.ts +0 -2
- package/server/options/getBlockAssetsPaths.js +0 -8
- package/server/options/getBlockMessages.d.ts +0 -2
- package/server/options/getBlockMessages.js +0 -4
- package/server/options/getCsp.d.ts +0 -2
- package/server/options/getCsp.js +0 -14
- package/server/options/getCurrentAppMember.d.ts +0 -3
- package/server/options/getCurrentAppMember.js +0 -4
- package/server/options/getCurrentAppMemberGroups.d.ts +0 -3
- package/server/options/getCurrentAppMemberGroups.js +0 -2
- package/server/options/getDbUpdated.d.ts +0 -1
- package/server/options/getDbUpdated.js +0 -2
- package/server/options/getHost.d.ts +0 -2
- package/server/options/getHost.js +0 -5
- package/server/options/getTheme.d.ts +0 -2
- package/server/options/getTheme.js +0 -6
- package/server/options/index.d.ts +0 -40
- package/server/options/index.js +0 -41
- package/server/options/options.d.ts +0 -2
- package/server/options/options.js +0 -46
- package/server/options/parseQuery.d.ts +0 -2
- package/server/options/parseQuery.js +0 -86
- package/server/options/reloadUser.d.ts +0 -1
- package/server/options/reloadUser.js +0 -2
- package/server/options/sendNotifications.d.ts +0 -1
- package/server/options/sendNotifications.js +0 -2
- package/server/options/updateAppResource.d.ts +0 -3
- package/server/options/updateAppResource.js +0 -16
- package/server/routes/appRouter/index.d.ts +0 -2
- package/server/routes/appRouter/index.js +0 -4
- package/server/utils/resourceLock.d.ts +0 -11
- package/server/utils/resourceLock.js +0 -23
package/server/db/methods.js
DELETED
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
import { getDb } from './index.js';
|
|
2
|
-
const defaults = {
|
|
3
|
-
AppId: 1,
|
|
4
|
-
AuthorId: 1,
|
|
5
|
-
$created: new Date(),
|
|
6
|
-
$updated: new Date(),
|
|
7
|
-
expires: null,
|
|
8
|
-
};
|
|
9
|
-
let appName = 'app';
|
|
10
|
-
export function setAppName(name) {
|
|
11
|
-
appName = name;
|
|
12
|
-
}
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
-
const comparators = ['gt', 'gte', 'lt', 'lte', 'eq', 'ne'];
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
-
const expressions = ['and', 'or'];
|
|
17
|
-
function parseValue(value) {
|
|
18
|
-
const toNumber = Number(value);
|
|
19
|
-
if (!Number.isNaN(toNumber)) {
|
|
20
|
-
return toNumber;
|
|
21
|
-
}
|
|
22
|
-
const toDate = Date.parse(value);
|
|
23
|
-
if (!Number.isNaN(toDate)) {
|
|
24
|
-
return toDate;
|
|
25
|
-
}
|
|
26
|
-
if (value === 'false' || value === 'true') {
|
|
27
|
-
return Boolean(value);
|
|
28
|
-
}
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
function applyQuery(entity, key, query) {
|
|
32
|
-
if (query == null && entity[key] == null) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
if (query === undefined && entity[key] === undefined) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
const parsedEntityValue = parseValue(entity[key]);
|
|
39
|
-
if (typeof query === 'string') {
|
|
40
|
-
return parsedEntityValue === parseValue(query);
|
|
41
|
-
}
|
|
42
|
-
if (query.or && Array.isArray(query.or)) {
|
|
43
|
-
return query.or.some((subQuery) => applyQuery(entity, key, subQuery));
|
|
44
|
-
}
|
|
45
|
-
if (query.and && Array.isArray(query.and)) {
|
|
46
|
-
return query.and.every((subQuery) => applyQuery(entity, key, subQuery));
|
|
47
|
-
}
|
|
48
|
-
if (query.gt) {
|
|
49
|
-
return parsedEntityValue > parseValue(query.gt);
|
|
50
|
-
}
|
|
51
|
-
if (query.gte) {
|
|
52
|
-
return parsedEntityValue >= parseValue(query.gte);
|
|
53
|
-
}
|
|
54
|
-
if (query.lt) {
|
|
55
|
-
return parsedEntityValue < parseValue(query.lt);
|
|
56
|
-
}
|
|
57
|
-
if (query.lte) {
|
|
58
|
-
return parsedEntityValue <= parseValue(query.lte);
|
|
59
|
-
}
|
|
60
|
-
if (query.eq || query.eq === '') {
|
|
61
|
-
return parsedEntityValue === parseValue(query.eq);
|
|
62
|
-
}
|
|
63
|
-
if (query.eq == null && entity[key] === undefined) {
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
if (query.ne || query.ne === '') {
|
|
67
|
-
return parsedEntityValue !== parseValue(query.ne);
|
|
68
|
-
}
|
|
69
|
-
return entity[key] === query;
|
|
70
|
-
}
|
|
71
|
-
function checkOr(entity, or) {
|
|
72
|
-
return or.some((subQuery) => {
|
|
73
|
-
if (subQuery.or) {
|
|
74
|
-
return checkOr(entity, subQuery.or);
|
|
75
|
-
}
|
|
76
|
-
if (subQuery.and) {
|
|
77
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
78
|
-
return checkAnd(entity, subQuery.and);
|
|
79
|
-
}
|
|
80
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
81
|
-
return checkEntity(entity, subQuery);
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
function checkAnd(entity, and) {
|
|
85
|
-
return and.every((subQuery) => {
|
|
86
|
-
if (subQuery.or) {
|
|
87
|
-
return checkOr(entity, subQuery.or);
|
|
88
|
-
}
|
|
89
|
-
if (subQuery.and) {
|
|
90
|
-
return checkAnd(entity, subQuery.and);
|
|
91
|
-
}
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
93
|
-
return checkEntity(entity, subQuery);
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
function checkEntity(entity, query) {
|
|
97
|
-
if (query.or && Array.isArray(query.or)) {
|
|
98
|
-
return checkOr(entity, query.or);
|
|
99
|
-
}
|
|
100
|
-
if (query.and && Array.isArray(query.and)) {
|
|
101
|
-
return checkAnd(entity, query.and);
|
|
102
|
-
}
|
|
103
|
-
return Object.entries(query).every(([key, value]) => applyQuery(entity, key, value));
|
|
104
|
-
}
|
|
105
|
-
function applyAttributes(entities, attributes) {
|
|
106
|
-
return entities.map((entity) => {
|
|
107
|
-
const result = {};
|
|
108
|
-
for (const attribute of attributes) {
|
|
109
|
-
if (entity[attribute] !== undefined) {
|
|
110
|
-
result[attribute] = entity[attribute];
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return result;
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
function applyOrder(entities, order) {
|
|
117
|
-
for (const orderItem of order) {
|
|
118
|
-
entities.sort((a, b) => {
|
|
119
|
-
const [property, direction] = orderItem;
|
|
120
|
-
if (a[property] > b[property]) {
|
|
121
|
-
return direction === 'DESC' ? -1 : 1;
|
|
122
|
-
}
|
|
123
|
-
if (a[property] < b[property]) {
|
|
124
|
-
return direction === 'DESC' ? 1 : -1;
|
|
125
|
-
}
|
|
126
|
-
return 0;
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
function clearEntity(entity) {
|
|
131
|
-
const { AppId, AuthorId, type, ...cleanPayload } = entity;
|
|
132
|
-
if (!cleanPayload.expires) {
|
|
133
|
-
delete cleanPayload.expires;
|
|
134
|
-
}
|
|
135
|
-
return cleanPayload;
|
|
136
|
-
}
|
|
137
|
-
export const Methods = {
|
|
138
|
-
async create(values, modelDir = '/') {
|
|
139
|
-
const db = await getDb(appName);
|
|
140
|
-
const existing = await this.findAll({}, modelDir);
|
|
141
|
-
const payload = {
|
|
142
|
-
...values,
|
|
143
|
-
id: existing.length + 1,
|
|
144
|
-
...defaults,
|
|
145
|
-
};
|
|
146
|
-
await db.push(modelDir, payload, true);
|
|
147
|
-
return clearEntity(payload);
|
|
148
|
-
},
|
|
149
|
-
async bulkCreate(values, modelDir = '/', override = false) {
|
|
150
|
-
const db = await getDb(appName);
|
|
151
|
-
const existing = await this.findAll({}, modelDir);
|
|
152
|
-
const payload = values.map((value, index) => ({
|
|
153
|
-
...value,
|
|
154
|
-
id: existing.length + index + 1,
|
|
155
|
-
...defaults,
|
|
156
|
-
}));
|
|
157
|
-
await db.push(modelDir, payload, existing.length === 0 ? true : override);
|
|
158
|
-
return payload.map((instance) => clearEntity(instance));
|
|
159
|
-
},
|
|
160
|
-
async findById(id, modelDir = '/') {
|
|
161
|
-
try {
|
|
162
|
-
const db = await getDb(appName);
|
|
163
|
-
const entityIndex = await db.getIndex(modelDir, id);
|
|
164
|
-
return await db.getObject(`${modelDir}[${entityIndex}]`);
|
|
165
|
-
}
|
|
166
|
-
catch {
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
async findOne(query, modelDir = '/') {
|
|
171
|
-
try {
|
|
172
|
-
const db = await getDb(appName);
|
|
173
|
-
const entities = await db.getObject(modelDir);
|
|
174
|
-
let mapped = entities;
|
|
175
|
-
if (query.attributes && query.attributes.length > 0) {
|
|
176
|
-
mapped = applyAttributes(mapped, query.attributes);
|
|
177
|
-
}
|
|
178
|
-
let filtered = mapped;
|
|
179
|
-
if (query.where) {
|
|
180
|
-
filtered = filtered.filter((entity) => checkEntity(entity, query.where));
|
|
181
|
-
}
|
|
182
|
-
const sorted = filtered;
|
|
183
|
-
if (query.order) {
|
|
184
|
-
applyOrder(sorted, query.order);
|
|
185
|
-
}
|
|
186
|
-
return clearEntity(sorted[0]) || null;
|
|
187
|
-
}
|
|
188
|
-
catch {
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
async findAll(query = {}, modelDir = '/') {
|
|
193
|
-
try {
|
|
194
|
-
const db = await getDb(appName);
|
|
195
|
-
const entities = await db.getObject(modelDir);
|
|
196
|
-
const sliced = entities.slice(query.offset || 0, ((query.limit ? query.limit - 1 + (query.offset || 0) : 0) || entities.length) + 1);
|
|
197
|
-
let mapped = sliced;
|
|
198
|
-
if (query.attributes && query.attributes.length > 0) {
|
|
199
|
-
mapped = applyAttributes(mapped, query.attributes);
|
|
200
|
-
}
|
|
201
|
-
let filtered = mapped;
|
|
202
|
-
if (query.where) {
|
|
203
|
-
filtered = filtered.filter((entity) => checkEntity(entity, query.where));
|
|
204
|
-
}
|
|
205
|
-
const sorted = filtered;
|
|
206
|
-
if (query.order) {
|
|
207
|
-
applyOrder(sorted, query.order);
|
|
208
|
-
}
|
|
209
|
-
return sorted.map((instance) => clearEntity(instance));
|
|
210
|
-
}
|
|
211
|
-
catch {
|
|
212
|
-
return [];
|
|
213
|
-
}
|
|
214
|
-
},
|
|
215
|
-
async updateOne(id, values, modelDir = '/') {
|
|
216
|
-
try {
|
|
217
|
-
const db = await getDb(appName);
|
|
218
|
-
const entityIndex = await db.getIndex(modelDir, id);
|
|
219
|
-
const existing = await this.findById(id, modelDir);
|
|
220
|
-
await db.push(`${modelDir}[${entityIndex}]`, { ...existing, ...values }, true);
|
|
221
|
-
// @ts-expect-error 2322 null is not assignable to type (strictNullChecks)
|
|
222
|
-
return this.findOne({ where: values }, modelDir);
|
|
223
|
-
}
|
|
224
|
-
catch {
|
|
225
|
-
// @ts-expect-error 2322 null is not assignable to type (strictNullChecks)
|
|
226
|
-
return null;
|
|
227
|
-
}
|
|
228
|
-
},
|
|
229
|
-
async deleteOne(id, modelDir = '/') {
|
|
230
|
-
try {
|
|
231
|
-
const db = await getDb(appName);
|
|
232
|
-
const entityIndex = await db.getIndex(modelDir, id);
|
|
233
|
-
return await db.delete(`${modelDir}[${entityIndex}]`);
|
|
234
|
-
}
|
|
235
|
-
catch {
|
|
236
|
-
// @ts-expect-error 2322 null is not assignable to type (strictNullChecks)
|
|
237
|
-
return null;
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
};
|
|
241
|
-
//# sourceMappingURL=methods.js.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { type FindOptions } from '@appsemble/node-utils';
|
|
2
|
-
export declare class Resource {
|
|
3
|
-
id: number;
|
|
4
|
-
$clonable: boolean;
|
|
5
|
-
$seed: boolean;
|
|
6
|
-
$ephemeral: boolean;
|
|
7
|
-
$created: string;
|
|
8
|
-
$updated: string;
|
|
9
|
-
[key: string]: unknown;
|
|
10
|
-
static create(values: Record<string, unknown>, type: string): Promise<Resource | null>;
|
|
11
|
-
static bulkCreate(values: Record<string, unknown>[], type: string, override?: boolean): Promise<Resource[] | []>;
|
|
12
|
-
static findById(id: number | string, type: string): Promise<Resource | null>;
|
|
13
|
-
static findAll(query: FindOptions, type: string): Promise<Resource[] | []>;
|
|
14
|
-
static updateOne(id: number | string, values: Record<string, unknown>, type: string): Promise<Resource | null>;
|
|
15
|
-
static deleteOne(id: number | string, type: string): Promise<void>;
|
|
16
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Methods } from '../db/methods.js';
|
|
2
|
-
const dir = '/resources';
|
|
3
|
-
export class Resource {
|
|
4
|
-
static create(values, type) {
|
|
5
|
-
return Methods.create({ ...values, type }, `${dir}/${type}[]`);
|
|
6
|
-
}
|
|
7
|
-
static bulkCreate(values, type, override = false) {
|
|
8
|
-
return Methods.bulkCreate(values.map((value) => ({ ...value, type })), `${dir}/${type}`, override);
|
|
9
|
-
}
|
|
10
|
-
static findById(id, type) {
|
|
11
|
-
return Methods.findById(id, `${dir}/${type}`);
|
|
12
|
-
}
|
|
13
|
-
static findAll(query, type) {
|
|
14
|
-
return Methods.findAll(query, `${dir}/${type}`);
|
|
15
|
-
}
|
|
16
|
-
static updateOne(id, values, type) {
|
|
17
|
-
return Methods.updateOne(id, values, `${dir}/${type}`);
|
|
18
|
-
}
|
|
19
|
-
static deleteOne(id, type) {
|
|
20
|
-
return Methods.deleteOne(id, `${dir}/${type}`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=Resource.js.map
|
package/server/models/Theme.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type FindOptions } from '@appsemble/node-utils';
|
|
2
|
-
export declare class Theme {
|
|
3
|
-
bulmaVersion: string;
|
|
4
|
-
primaryColor: string;
|
|
5
|
-
linkColor: string;
|
|
6
|
-
successColor: string;
|
|
7
|
-
infoColor: string;
|
|
8
|
-
warningColor: string;
|
|
9
|
-
dangerColor: string;
|
|
10
|
-
themeColor: string;
|
|
11
|
-
splashColor: string;
|
|
12
|
-
fontFamily: string;
|
|
13
|
-
fontSource: string;
|
|
14
|
-
css: string;
|
|
15
|
-
static create(values: Record<string, unknown>): Promise<Theme | null>;
|
|
16
|
-
static findOne(query: FindOptions): Promise<Theme | null>;
|
|
17
|
-
}
|
package/server/models/Theme.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Methods } from '../db/methods.js';
|
|
2
|
-
const dir = '/themes';
|
|
3
|
-
export class Theme {
|
|
4
|
-
static create(values) {
|
|
5
|
-
return Methods.create(values, dir);
|
|
6
|
-
}
|
|
7
|
-
static findOne(query) {
|
|
8
|
-
return Methods.findOne(query, dir);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=Theme.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkAppMemberAppPermissions(): Promise<void>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkAppPermissions(): Promise<void>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkAuthSubjectAppPermissions(): Promise<void>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function checkUserOrganizationPermissions(): Promise<void>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { createReadStream } from 'node:fs';
|
|
2
|
-
export function createAppAsset({ context, payload }) {
|
|
3
|
-
const { filename, mime, name, path } = payload;
|
|
4
|
-
const asset = {
|
|
5
|
-
id: name,
|
|
6
|
-
mime,
|
|
7
|
-
name,
|
|
8
|
-
filename,
|
|
9
|
-
stream: createReadStream(path),
|
|
10
|
-
};
|
|
11
|
-
context.appAssets.push(asset);
|
|
12
|
-
return Promise.resolve(asset);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=createAppAsset.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { type CreateAppResourcesWithAssetsParams } from '@appsemble/node-utils';
|
|
2
|
-
import { type Resource as ResourceInterface } from '@appsemble/types';
|
|
3
|
-
export declare function createAppResourcesWithAssets({ app, context, preparedAssets, resourceType, resources, }: CreateAppResourcesWithAssetsParams): Promise<ResourceInterface[]>;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { createReadStream } from 'node:fs';
|
|
2
|
-
import { Resource } from '../models/Resource.js';
|
|
3
|
-
export async function createAppResourcesWithAssets({ app, context, preparedAssets, resourceType, resources, }) {
|
|
4
|
-
const existingResources = await Resource.findAll({}, resourceType);
|
|
5
|
-
const firstIndex = existingResources.length;
|
|
6
|
-
const createdResources = await Resource.bulkCreate(resources.map((resource, index) => ({
|
|
7
|
-
id: firstIndex + index,
|
|
8
|
-
AppId: app.id,
|
|
9
|
-
...resource,
|
|
10
|
-
})), resourceType);
|
|
11
|
-
for (const asset of preparedAssets) {
|
|
12
|
-
context.appAssets.push({ ...asset, stream: createReadStream(asset.path) });
|
|
13
|
-
}
|
|
14
|
-
return createdResources;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=createAppResourcesWithAssets.js.map
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { createSettings as createUtilsSettings, } from '@appsemble/node-utils';
|
|
4
|
-
import { getProjectBuildConfig } from '../../lib/config.js';
|
|
5
|
-
import { buildProject, makeProjectPayload } from '../../lib/project.js';
|
|
6
|
-
export async function createSettings({ context, host, languages, }) {
|
|
7
|
-
const { appBlocks, appPath, appsembleApp } = context;
|
|
8
|
-
const controllerPath = join(appPath, 'controller');
|
|
9
|
-
let controllerCode;
|
|
10
|
-
let controllerImplementations;
|
|
11
|
-
if (existsSync(controllerPath)) {
|
|
12
|
-
const controllerBuildConfig = await getProjectBuildConfig(controllerPath);
|
|
13
|
-
const controllerBuildResult = await buildProject(controllerBuildConfig);
|
|
14
|
-
[, controllerImplementations] = await makeProjectPayload(controllerBuildConfig);
|
|
15
|
-
controllerCode = controllerBuildResult.outputFiles?.[0].text;
|
|
16
|
-
}
|
|
17
|
-
return createUtilsSettings({
|
|
18
|
-
apiUrl: host,
|
|
19
|
-
appControllerCode: controllerCode,
|
|
20
|
-
appControllerImplementations: JSON.stringify(controllerImplementations),
|
|
21
|
-
blockManifests: appBlocks,
|
|
22
|
-
id: appsembleApp.id,
|
|
23
|
-
languages,
|
|
24
|
-
definition: appsembleApp.definition,
|
|
25
|
-
appUpdated: appsembleApp.$updated,
|
|
26
|
-
logins: [],
|
|
27
|
-
development: true,
|
|
28
|
-
supportedLanguages: ['en'],
|
|
29
|
-
// Locally served apps have no app record backing them, so two factor authentication can never
|
|
30
|
-
// be set up for them.
|
|
31
|
-
totp: 'disabled',
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=createSettings.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Theme } from '../models/Theme.js';
|
|
2
|
-
export function createTheme({ css, ...theme }) {
|
|
3
|
-
// @ts-expect-error 2345 argument of type is not assignable to parameter of type
|
|
4
|
-
// (strictNullChecks)
|
|
5
|
-
return Theme.create({ ...theme, css });
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=createTheme.js.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { rm } from 'node:fs/promises';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { logger } from '@appsemble/node-utils';
|
|
4
|
-
export async function deleteAppAsset({ app, id }) {
|
|
5
|
-
try {
|
|
6
|
-
await rm(join(process.cwd(), '/apps/', app.definition.name, '/assets/', id));
|
|
7
|
-
return 1;
|
|
8
|
-
}
|
|
9
|
-
catch (error) {
|
|
10
|
-
logger.error(`An error occurred while deleting asset ${id} of app ${app.definition.name}`);
|
|
11
|
-
logger.error(error);
|
|
12
|
-
return 0;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=deleteAppAsset.js.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { createResourceEtag, matchesResourceIfMatch, throwResourcePreconditionFailedKoaError, } from '@appsemble/node-utils';
|
|
2
|
-
import { Resource } from '../models/Resource.js';
|
|
3
|
-
import { withResourceLock } from '../utils/resourceLock.js';
|
|
4
|
-
export function deleteAppResource({ context, id, ifMatch, type, }) {
|
|
5
|
-
return withResourceLock(type, id, async () => {
|
|
6
|
-
if (ifMatch) {
|
|
7
|
-
const existing = await Resource.findById(id, type);
|
|
8
|
-
if (!existing ||
|
|
9
|
-
!matchesResourceIfMatch(ifMatch, createResourceEtag(existing))) {
|
|
10
|
-
throwResourcePreconditionFailedKoaError(context, type, id);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return Resource.deleteOne(id, type);
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=deleteAppResource.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const email: () => Promise<void>;
|
package/server/options/email.js
DELETED
package/server/options/getApp.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createReadStream } from 'node:fs';
|
|
2
|
-
export function getAppAsset({ context, id: filename }) {
|
|
3
|
-
const assetFound = context.appAssets.find((asset) => asset.name === filename);
|
|
4
|
-
// @ts-expect-error 2345 argument of type is not assignable to parameter of type
|
|
5
|
-
// (strictNullChecks)
|
|
6
|
-
return Promise.resolve({ ...assetFound, stream: createReadStream(assetFound.filename) });
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=getAppAsset.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { createReadStream } from 'node:fs';
|
|
2
|
-
export function getAppAssets({ context }) {
|
|
3
|
-
return Promise.resolve(
|
|
4
|
-
// @ts-expect-error 2345 argument of type is not assignable to parameter of type
|
|
5
|
-
// (strictNullChecks)
|
|
6
|
-
context.appAssets.map((asset) => ({ ...asset, stream: createReadStream(asset.filename) })));
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=getAppAssets.js.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { parseBlockName } from '@appsemble/lang-sdk';
|
|
4
|
-
import { opendirSafe, replaceAssetFunctions, } from '@appsemble/node-utils';
|
|
5
|
-
import { processCss } from '../../lib/processCss.js';
|
|
6
|
-
export async function getAppBlockStyles({ context, name, }) {
|
|
7
|
-
const { apiUrl, appPath, appsembleApp } = context;
|
|
8
|
-
const [, blockName] = parseBlockName(name);
|
|
9
|
-
let style = '';
|
|
10
|
-
const themeDirPath = join(appPath, 'theme');
|
|
11
|
-
if (!existsSync(themeDirPath)) {
|
|
12
|
-
return [{ style }];
|
|
13
|
-
}
|
|
14
|
-
await opendirSafe(join(appPath, 'theme'), async (themeDir, themeStat) => {
|
|
15
|
-
const blockDir = join(themeDir, blockName);
|
|
16
|
-
if (themeStat.name.startsWith('@') && existsSync(blockDir)) {
|
|
17
|
-
await opendirSafe(blockDir, async (file) => {
|
|
18
|
-
if (file.endsWith('.css')) {
|
|
19
|
-
const css = await processCss(join(file));
|
|
20
|
-
style = replaceAssetFunctions(css, appsembleApp.id, apiUrl);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
return [{ style }];
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=getAppBlockStyles.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
export async function getAppReadmes({ app }) {
|
|
3
|
-
const readme = await readFile(`${app.path}/readmes/${app.readmeUrl}`);
|
|
4
|
-
return [
|
|
5
|
-
{
|
|
6
|
-
id: 0,
|
|
7
|
-
file: readme,
|
|
8
|
-
},
|
|
9
|
-
];
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=getAppReadmes.js.map
|