@saltcorn/data 1.6.0-beta.1 → 1.6.0-beta.10

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 (152) hide show
  1. package/dist/base-plugin/actions.d.ts +191 -62
  2. package/dist/base-plugin/actions.d.ts.map +1 -1
  3. package/dist/base-plugin/actions.js +164 -66
  4. package/dist/base-plugin/actions.js.map +1 -1
  5. package/dist/base-plugin/fieldviews.d.ts +1 -0
  6. package/dist/base-plugin/fieldviews.d.ts.map +1 -1
  7. package/dist/base-plugin/fieldviews.js +5 -2
  8. package/dist/base-plugin/fieldviews.js.map +1 -1
  9. package/dist/base-plugin/fileviews.d.ts +6 -0
  10. package/dist/base-plugin/fileviews.d.ts.map +1 -1
  11. package/dist/base-plugin/fileviews.js +14 -0
  12. package/dist/base-plugin/fileviews.js.map +1 -1
  13. package/dist/base-plugin/index.d.ts +210 -65
  14. package/dist/base-plugin/index.d.ts.map +1 -1
  15. package/dist/base-plugin/types.d.ts +19 -9
  16. package/dist/base-plugin/types.d.ts.map +1 -1
  17. package/dist/base-plugin/types.js +41 -12
  18. package/dist/base-plugin/types.js.map +1 -1
  19. package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
  20. package/dist/base-plugin/viewtemplates/edit.js +12 -11
  21. package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
  22. package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -1
  23. package/dist/base-plugin/viewtemplates/feed.js +1 -1
  24. package/dist/base-plugin/viewtemplates/feed.js.map +1 -1
  25. package/dist/base-plugin/viewtemplates/filter.js +2 -2
  26. package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
  27. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  28. package/dist/base-plugin/viewtemplates/list.js +14 -1
  29. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  30. package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -1
  31. package/dist/base-plugin/viewtemplates/room.js +1 -1
  32. package/dist/base-plugin/viewtemplates/room.js.map +1 -1
  33. package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
  34. package/dist/db/fixtures.d.ts.map +1 -1
  35. package/dist/db/fixtures.js +31 -1
  36. package/dist/db/fixtures.js.map +1 -1
  37. package/dist/db/state.d.ts +5 -3
  38. package/dist/db/state.d.ts.map +1 -1
  39. package/dist/db/state.js +36 -12
  40. package/dist/db/state.js.map +1 -1
  41. package/dist/migrate.d.ts.map +1 -1
  42. package/dist/migrate.js +3 -1
  43. package/dist/migrate.js.map +1 -1
  44. package/dist/migrations/202604091531.d.ts +2 -0
  45. package/dist/migrations/202604091531.d.ts.map +1 -0
  46. package/dist/migrations/202604091531.js +9 -0
  47. package/dist/migrations/202604091531.js.map +1 -0
  48. package/dist/migrations/202604111200.d.ts +2 -0
  49. package/dist/migrations/202604111200.d.ts.map +1 -0
  50. package/dist/migrations/202604111200.js +15 -0
  51. package/dist/migrations/202604111200.js.map +1 -0
  52. package/dist/migrations/202604141200.d.ts +2 -0
  53. package/dist/migrations/202604141200.d.ts.map +1 -0
  54. package/dist/migrations/202604141200.js +14 -0
  55. package/dist/migrations/202604141200.js.map +1 -0
  56. package/dist/mobile-mocks/node/fs/promises.d.ts +1 -0
  57. package/dist/mobile-mocks/node/fs/promises.d.ts.map +1 -1
  58. package/dist/mobile-mocks/node/fs/promises.js +4 -0
  59. package/dist/mobile-mocks/node/fs/promises.js.map +1 -1
  60. package/dist/mobile-mocks/node/fs.d.ts +2 -0
  61. package/dist/mobile-mocks/node/fs.d.ts.map +1 -1
  62. package/dist/mobile-mocks/node/fs.js +36 -0
  63. package/dist/mobile-mocks/node/fs.js.map +1 -1
  64. package/dist/mobile-mocks/npm/npm-registry-fetch.d.ts +3 -0
  65. package/dist/mobile-mocks/npm/npm-registry-fetch.d.ts.map +1 -0
  66. package/dist/mobile-mocks/npm/npm-registry-fetch.js +3 -0
  67. package/dist/mobile-mocks/npm/npm-registry-fetch.js.map +1 -0
  68. package/dist/mobile-mocks/saltcorn/admin-models-tenant.d.ts +1 -0
  69. package/dist/mobile-mocks/saltcorn/admin-models-tenant.d.ts.map +1 -0
  70. package/dist/mobile-mocks/saltcorn/admin-models-tenant.js +2 -0
  71. package/dist/mobile-mocks/saltcorn/admin-models-tenant.js.map +1 -0
  72. package/dist/mobile-mocks/saltcorn/plugins-loader-plugin-installer.d.ts +1 -0
  73. package/dist/mobile-mocks/saltcorn/plugins-loader-plugin-installer.d.ts.map +1 -0
  74. package/dist/mobile-mocks/saltcorn/plugins-loader-plugin-installer.js +2 -0
  75. package/dist/mobile-mocks/saltcorn/plugins-loader-plugin-installer.js.map +1 -0
  76. package/dist/mobile-mocks/saltcorn/plugins-loader-stable-versioning.d.ts +1 -0
  77. package/dist/mobile-mocks/saltcorn/plugins-loader-stable-versioning.d.ts.map +1 -0
  78. package/dist/mobile-mocks/saltcorn/plugins-loader-stable-versioning.js +2 -0
  79. package/dist/mobile-mocks/saltcorn/plugins-loader-stable-versioning.js.map +1 -0
  80. package/dist/models/config.d.ts.map +1 -1
  81. package/dist/models/config.js +46 -1
  82. package/dist/models/config.js.map +1 -1
  83. package/dist/models/discovery.d.ts +14 -0
  84. package/dist/models/discovery.d.ts.map +1 -1
  85. package/dist/models/discovery.js +63 -0
  86. package/dist/models/discovery.js.map +1 -1
  87. package/dist/models/expression.d.ts +7 -4
  88. package/dist/models/expression.d.ts.map +1 -1
  89. package/dist/models/expression.js +28 -14
  90. package/dist/models/expression.js.map +1 -1
  91. package/dist/models/field.d.ts.map +1 -1
  92. package/dist/models/field.js +39 -9
  93. package/dist/models/field.js.map +1 -1
  94. package/dist/models/index.d.ts +12 -2
  95. package/dist/models/index.d.ts.map +1 -1
  96. package/dist/models/index.js +1 -1
  97. package/dist/models/index.js.map +1 -1
  98. package/dist/models/page.d.ts +1 -0
  99. package/dist/models/page.d.ts.map +1 -1
  100. package/dist/models/page.js +36 -20
  101. package/dist/models/page.js.map +1 -1
  102. package/dist/models/plugin.d.ts +57 -0
  103. package/dist/models/plugin.d.ts.map +1 -1
  104. package/dist/models/plugin.js +322 -1
  105. package/dist/models/plugin.js.map +1 -1
  106. package/dist/models/scheduler.d.ts.map +1 -1
  107. package/dist/models/scheduler.js +15 -5
  108. package/dist/models/scheduler.js.map +1 -1
  109. package/dist/models/table.d.ts +3 -1
  110. package/dist/models/table.d.ts.map +1 -1
  111. package/dist/models/table.js +148 -44
  112. package/dist/models/table.js.map +1 -1
  113. package/dist/models/trigger.d.ts +3 -1
  114. package/dist/models/trigger.d.ts.map +1 -1
  115. package/dist/models/trigger.js +18 -4
  116. package/dist/models/trigger.js.map +1 -1
  117. package/dist/models/user.d.ts.map +1 -1
  118. package/dist/models/user.js +2 -1
  119. package/dist/models/user.js.map +1 -1
  120. package/dist/models/view.d.ts +1 -0
  121. package/dist/models/view.d.ts.map +1 -1
  122. package/dist/models/view.js +74 -14
  123. package/dist/models/view.js.map +1 -1
  124. package/dist/models/workflow_run.d.ts.map +1 -1
  125. package/dist/models/workflow_run.js +3 -2
  126. package/dist/models/workflow_run.js.map +1 -1
  127. package/dist/models/workflow_step.d.ts +1 -1
  128. package/dist/models/workflow_step.d.ts.map +1 -1
  129. package/dist/models/workflow_step.js +2 -1
  130. package/dist/models/workflow_step.js.map +1 -1
  131. package/dist/plugin-helper.d.ts +3 -11
  132. package/dist/plugin-helper.d.ts.map +1 -1
  133. package/dist/plugin-helper.js +102 -60
  134. package/dist/plugin-helper.js.map +1 -1
  135. package/dist/standard-menu.d.ts.map +1 -1
  136. package/dist/standard-menu.js +19 -0
  137. package/dist/standard-menu.js.map +1 -1
  138. package/dist/tests/remote_query_helper.js +1 -1
  139. package/dist/tests/remote_query_helper.js.map +1 -1
  140. package/dist/utils.d.ts +15 -0
  141. package/dist/utils.d.ts.map +1 -1
  142. package/dist/utils.js +102 -5
  143. package/dist/utils.js.map +1 -1
  144. package/dist/viewable_fields.d.ts +1 -1
  145. package/dist/viewable_fields.d.ts.map +1 -1
  146. package/dist/viewable_fields.js +48 -9
  147. package/dist/viewable_fields.js.map +1 -1
  148. package/dist/web-mobile-commons.d.ts.map +1 -1
  149. package/dist/web-mobile-commons.js +2 -1
  150. package/dist/web-mobile-commons.js.map +1 -1
  151. package/package.json +12 -9
  152. package/webpack.config.js +11 -0
@@ -46,6 +46,7 @@ const view_1 = __importDefault(require("./view"));
46
46
  const table_1 = __importDefault(require("./table"));
47
47
  const file_1 = __importDefault(require("./file"));
48
48
  const promises_1 = require("fs/promises");
49
+ const htmlparser2_1 = require("htmlparser2");
49
50
  const layout_1 = __importDefault(require("./layout"));
50
51
  const { eachView, eachPage, traverse, getStringsForI18n, translateLayout } = layout_1.default;
51
52
  const config_1 = __importDefault(require("./config"));
@@ -81,6 +82,9 @@ class Page {
81
82
  typeof o.fixed_states === "string"
82
83
  ? JSON.parse(o.fixed_states)
83
84
  : o.fixed_states || {};
85
+ this.updated_at = ["string", "number"].includes(typeof o.updated_at)
86
+ ? new Date(o.updated_at)
87
+ : o.updated_at;
84
88
  }
85
89
  /**
86
90
  * Find pages in DB
@@ -125,7 +129,7 @@ class Page {
125
129
  * @returns {Promise<void>}
126
130
  */
127
131
  static async update(id, row) {
128
- await db_1.default.update("_sc_pages", row, id);
132
+ await db_1.default.update("_sc_pages", { ...row, updated_at: new Date() }, id);
129
133
  if (!db_1.default.getRequestContext()?.client)
130
134
  await require("../db/state").getState().refresh_pages(true);
131
135
  }
@@ -142,6 +146,7 @@ class Page {
142
146
  */
143
147
  static async create(f) {
144
148
  const page = new Page(f);
149
+ page.updated_at = new Date();
145
150
  const { id, ...rest } = page;
146
151
  const fid = await db_1.default.insert("_sc_pages", rest);
147
152
  page.id = fid;
@@ -392,29 +397,40 @@ class Page {
392
397
  const file = await file_1.default.findOne(this.layout.html_file);
393
398
  const html_string = (await file?.get_contents("utf8"));
394
399
  if (html_string?.includes("<embed-view")) {
395
- const viewContents = {};
396
- const embeds = html_string.toString().matchAll(/<embed-view(\s*.*?)>/g);
397
- for (const match of embeds) {
398
- const attrs = {};
399
- for (const attrStr of match[1]
400
- .split(" ")
401
- .map((s) => s.trim())
402
- .filter(Boolean)) {
403
- const [anm, aval] = attrStr.split("=");
404
- if (!aval)
405
- continue;
406
- attrs[anm] = aval.replaceAll('"', "");
407
- }
408
- const { viewname, ...embedstate } = attrs;
400
+ const doc = (0, htmlparser2_1.parseDocument)(html_string, {
401
+ withStartIndices: true,
402
+ withEndIndices: true,
403
+ xmlMode: true,
404
+ });
405
+ const embedNodes = htmlparser2_1.DomUtils.findAll((el) => el.type === "tag" && el.name === "embed-view", doc.children);
406
+ const replacements = [];
407
+ for (const node of embedNodes) {
408
+ const { viewname, ...embedstate } = node.attribs ?? {};
409
409
  const view = view_1.default.findOne({ name: viewname });
410
410
  if (!view)
411
411
  continue;
412
- viewContents[match[0]] = await view.run({ ...querystate, ...embedstate }, extraArgs);
412
+ try {
413
+ const content = await view.run({ ...querystate, ...embedstate }, extraArgs);
414
+ replacements.push({
415
+ start: node.startIndex,
416
+ end: node.endIndex + 1,
417
+ content: content ?? "",
418
+ });
419
+ }
420
+ catch (e) {
421
+ replacements.push({
422
+ start: node.startIndex,
423
+ end: node.endIndex + 1,
424
+ content: "",
425
+ });
426
+ }
427
+ }
428
+ replacements.sort((a, b) => b.start - a.start);
429
+ let result = html_string;
430
+ for (const { start, end, content } of replacements) {
431
+ result = result.slice(0, start) + content + result.slice(end);
413
432
  }
414
- const replacer = (match) => viewContents[match] || match;
415
- return {
416
- html_string: html_string.replace(/<embed-view(\s*.*?)>/, replacer),
417
- };
433
+ return { html_string: result };
418
434
  }
419
435
  }
420
436
  return this.layout;
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../models/page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../models/page.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ declare class Plugin implements AbstractPlugin {
14
14
  configuration?: any;
15
15
  source: PluginSourceType;
16
16
  description?: string;
17
+ contents?: string;
17
18
  has_theme?: boolean;
18
19
  has_auth?: boolean;
19
20
  unsafe?: boolean;
@@ -85,6 +86,62 @@ declare class Plugin implements AbstractPlugin {
85
86
  * @returns
86
87
  */
87
88
  static is_fixed_plugin(name: string): boolean;
89
+ /**
90
+ * Return cached engine constraint metadata for a plugin, fetching from npm if needed
91
+ * @param plugin - plugin whose npm location is queried
92
+ * @param forceFetch - bypass the cache and re-fetch from npm
93
+ * @returns map of `{ version: { engines?: { saltcorn: string } } }`
94
+ */
95
+ static getEngineInfos(plugin: Plugin, forceFetch?: boolean): Promise<any>;
96
+ /**
97
+ * Check the saltcorn engine property and change the plugin version if necessary
98
+ * @param plugin - plugin to validate; `plugin.version` may be mutated
99
+ * @param forceFetch - bypass the engine-info cache when checking versions
100
+ */
101
+ static ensurePluginSupport(plugin: Plugin, forceFetch?: boolean): Promise<void>;
102
+ /**
103
+ * Load one plugin and register in state (without DB save)
104
+ * @param plugin - plugin to load
105
+ * @param force - remove the install directory and retry on registration failure
106
+ * @param forceFetch - bypass the engine-info cache when resolving versions
107
+ * @param reloadModule - force a fresh module load even if already cached
108
+ * @returns PluginInstaller result (`{ plugin_module, location, … }`)
109
+ */
110
+ static loadPlugin(plugin: Plugin, force?: boolean, forceFetch?: boolean, reloadModule?: boolean): Promise<any>;
111
+ /**
112
+ * Install plugin without registering in state or saving to database
113
+ * @param plugin - plugin to install
114
+ * @param force - force reinstall even if already present
115
+ * @returns PluginInstaller result (`{ plugin_module, location, version, … }`)
116
+ */
117
+ static requirePlugin(plugin: Plugin, force?: boolean): Promise<any>;
118
+ /**
119
+ * Load all plugins from the database into state
120
+ * @param force - passed through to {@link loadPlugin} for each plugin
121
+ * @param reloadModule - force fresh module loads for each plugin
122
+ */
123
+ static loadAllPlugins(force?: boolean, reloadModule?: boolean): Promise<void>;
124
+ /**
125
+ * Load plugin and its dependencies and save into local installation
126
+ * @param plugin - plugin to install
127
+ * @param force - force reinstall; retries after removing the install dir on failure
128
+ * @param noSignalOrDB - skip database upsert and processSend signal (e.g. during restore)
129
+ * @param __ - i18n translation function for user-facing messages
130
+ * @param allowUnsafeOnTenantsWithoutConfigSetting - allow unsafe plugins on tenants without the global config flag
131
+ * @param overwriteDependencies - substitute local paths for dependencies; testing only
132
+ * @returns warning/info messages collected during install, or `undefined` if skipped
133
+ */
134
+ static loadAndSaveNewPlugin(plugin: Plugin, force?: boolean, noSignalOrDB?: boolean, __?: (str: string, ...args: any[]) => string, allowUnsafeOnTenantsWithoutConfigSetting?: boolean, overwriteDependencies?: Record<string, string>): Promise<string[] | undefined>;
135
+ /**
136
+ * When the database has another plugin version, don't override the pre-installed module
137
+ * @param plugin - plugin whose version may be mutated
138
+ * @param airgapedStore - content of `pre_installed_module_infos` config
139
+ */
140
+ private static ensureAirgapedVersion;
141
+ /**
142
+ * Copy auth methods with `shareWithTenants: true` from root state into current tenant state
143
+ */
144
+ private static reloadAuthFromRoot;
88
145
  }
89
146
  export = Plugin;
90
147
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../models/plugin.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAgB,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,cAAc,EACf,MAAM,iDAAiD,CAAC;AAQzD;;;GAGG;AACH,cAAM,MAAO,YAAW,cAAc;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;gBACS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM;IAe9C;;;;OAIG;WACU,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1D;;;;OAIG;WACU,IAAI,CACf,KAAK,CAAC,EAAE,KAAK,EACb,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAMzB;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB7B;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;;;OAIG;IACG,eAAe,CACnB,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,EACtD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAchB;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAiB1C,gBAAgB,IAAI,OAAO;IAQ3B,mBAAmB,IAAI,OAAO;IAQ9B,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC;IAO1C,MAAM,KAAK,4BAA4B,IAAI,MAAM,CAEhD;IACD,MAAM,KAAK,0BAA0B,IAAI,OAAO,CAE/C;WACY,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC;IAKrD;;;;OAIG;WACU,uBAAuB,CAClC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IA6DzB;;;OAGG;WACU,kCAAkC,CAC7C,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAqBzB;;;;OAIG;WACU,aAAa,CACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBzB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG9C;AAED,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../models/plugin.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,15 @@ const promises_1 = __importDefault(require("fs/promises"));
15
15
  const fs_1 = require("fs");
16
16
  const path_1 = __importDefault(require("path"));
17
17
  const utils_1 = __importDefault(require("../utils"));
18
- const { stringToJSON, isStale, getFetchProxyOptions, pluginsFolderRoot } = utils_1.default;
18
+ const { stringToJSON, isStale, getFetchProxyOptions, pluginsFolderRoot, isRoot, } = utils_1.default;
19
+ const npmFetch = require("npm-registry-fetch");
20
+ let packagejson = null;
21
+ try {
22
+ packagejson = require("../package.json");
23
+ }
24
+ catch (error) {
25
+ packagejson = require("../../package.json");
26
+ }
19
27
  /**
20
28
  * Plugin Class
21
29
  * @category saltcorn-data
@@ -32,6 +40,7 @@ class Plugin {
32
40
  this.location = o.location;
33
41
  this.version = o.version;
34
42
  this.description = o.description;
43
+ this.contents = o.contents;
35
44
  this.documentation_link = o.documentation_link;
36
45
  this.has_theme = o.has_theme;
37
46
  this.has_auth = o.has_auth;
@@ -250,6 +259,318 @@ class Plugin {
250
259
  static is_fixed_plugin(name) {
251
260
  return ["@saltcorn/base-plugin", "@saltcorn/sbadmin2"].includes(name);
252
261
  }
262
+ // ── plugin loading / installation ──────────────────────────────────────
263
+ /**
264
+ * Return cached engine constraint metadata for a plugin, fetching from npm if needed
265
+ * @param plugin - plugin whose npm location is queried
266
+ * @param forceFetch - bypass the cache and re-fetch from npm
267
+ * @returns map of `{ version: { engines?: { saltcorn: string } } }`
268
+ */
269
+ static async getEngineInfos(plugin, forceFetch) {
270
+ const { getRootState, getState } = require("../db/state");
271
+ const cached = getRootState().getConfig("engines_cache", {}) || {};
272
+ const airgap = getState().getConfig("airgap", false);
273
+ if (airgap || (cached[plugin.location] && !forceFetch)) {
274
+ return cached[plugin.location] || {};
275
+ }
276
+ else {
277
+ //TODO do this correctly for local plugins
278
+ if (plugin.source !== "npm")
279
+ return {};
280
+ getState().log(5, `Fetching versions for '${plugin.location}'`);
281
+ const pkgInfo = await npmFetch.json(`https://registry.npmjs.org/${plugin.location}`, getFetchProxyOptions());
282
+ const versions = pkgInfo.versions;
283
+ const newCached = {};
284
+ for (const [k, v] of Object.entries(versions)) {
285
+ newCached[k] = v.engines?.saltcorn
286
+ ? { engines: { saltcorn: v.engines.saltcorn } }
287
+ : {};
288
+ }
289
+ cached[plugin.location] = newCached;
290
+ await getRootState().setConfig("engines_cache", { ...cached });
291
+ return newCached;
292
+ }
293
+ }
294
+ /**
295
+ * Check the saltcorn engine property and change the plugin version if necessary
296
+ * @param plugin - plugin to validate; `plugin.version` may be mutated
297
+ * @param forceFetch - bypass the engine-info cache when checking versions
298
+ */
299
+ static async ensurePluginSupport(plugin, forceFetch) {
300
+ const { getState } = require("../db/state");
301
+ const { supportedVersion, resolveLatest, } = require("@saltcorn/plugins-loader/stable_versioning");
302
+ let versions = await Plugin.getEngineInfos(plugin, forceFetch);
303
+ if (plugin.version &&
304
+ plugin.version !== "latest" &&
305
+ !versions[plugin.version] &&
306
+ !forceFetch) {
307
+ versions = await Plugin.getEngineInfos(plugin, true);
308
+ }
309
+ const supported = supportedVersion(plugin.version || "latest", versions, packagejson.version);
310
+ if (!supported) {
311
+ if (getState().getConfig("airgap", false))
312
+ getState().log(5, `Warning: No supported version for '${plugin.location}' in airgap mode"}`);
313
+ else
314
+ throw new Error(`Unable to find a supported version for '${plugin.location}'`);
315
+ }
316
+ else if (supported !== plugin.version ||
317
+ (plugin.version === "latest" && supported !== resolveLatest(versions)))
318
+ plugin.version = supported;
319
+ }
320
+ /**
321
+ * Load one plugin and register in state (without DB save)
322
+ * @param plugin - plugin to load
323
+ * @param force - remove the install directory and retry on registration failure
324
+ * @param forceFetch - bypass the engine-info cache when resolving versions
325
+ * @param reloadModule - force a fresh module load even if already cached
326
+ * @returns PluginInstaller result (`{ plugin_module, location, … }`)
327
+ */
328
+ static async loadPlugin(plugin, force, forceFetch, reloadModule = false) {
329
+ const { getState, getRootState } = require("../db/state");
330
+ const PluginInstaller = require("@saltcorn/plugins-loader/plugin_installer");
331
+ if (!isRoot() &&
332
+ !getRootState().getConfig("tenants_install_git", false) &&
333
+ (plugin.source === "git" || plugin.source === "github")) {
334
+ console.error("\nWARNING: Skipping git/github plugin ", plugin.name);
335
+ return;
336
+ }
337
+ if (plugin.source === "npm" && !Plugin.is_fixed_plugin(plugin.location)) {
338
+ try {
339
+ await Plugin.ensurePluginSupport(plugin, forceFetch);
340
+ }
341
+ catch (e) {
342
+ console.log(`Warning: Unable to find a supported version for '${plugin.location}' Continuing with the installed version`);
343
+ }
344
+ }
345
+ const airgap = getState().getConfig("airgap", false);
346
+ if (airgap && !Plugin.is_fixed_plugin(plugin.location))
347
+ Plugin.ensureAirgapedVersion(plugin, getRootState().getConfig("pre_installed_module_infos", []));
348
+ const loader = new PluginInstaller(plugin, {
349
+ scVersion: packagejson.version,
350
+ envVars: { PUPPETEER_SKIP_DOWNLOAD: true },
351
+ reloadModule,
352
+ force,
353
+ });
354
+ const res = await loader.install();
355
+ const configuration = typeof plugin.configuration === "string"
356
+ ? JSON.parse(plugin.configuration)
357
+ : plugin.configuration;
358
+ try {
359
+ getState().registerPlugin(res.plugin_module.plugin_name || plugin.name, res.plugin_module, configuration, res.location, res.name);
360
+ }
361
+ catch (error) {
362
+ getState().log(3, `Error loading plugin ${plugin.name}: ${error.message || error}`);
363
+ if (force) {
364
+ await loader.remove();
365
+ await loader.install();
366
+ getState().registerPlugin(res.plugin_module.plugin_name || plugin.name, res.plugin_module, configuration, res.location, res.name);
367
+ }
368
+ }
369
+ if (res.plugin_module.user_config_form)
370
+ await getState().refresh_userlayouts();
371
+ if (res.plugin_module.onLoad) {
372
+ try {
373
+ await res.plugin_module.onLoad(plugin.configuration);
374
+ }
375
+ catch (error) {
376
+ console.error(error);
377
+ }
378
+ }
379
+ if (isRoot() && res.plugin_module.authentication) {
380
+ const { eachTenant } = require("@saltcorn/admin-models/models/tenant");
381
+ await eachTenant(Plugin.reloadAuthFromRoot);
382
+ }
383
+ return res;
384
+ }
385
+ /**
386
+ * Install plugin without registering in state or saving to database
387
+ * @param plugin - plugin to install
388
+ * @param force - force reinstall even if already present
389
+ * @returns PluginInstaller result (`{ plugin_module, location, version, … }`)
390
+ */
391
+ static async requirePlugin(plugin, force) {
392
+ const { getState, getRootState } = require("../db/state");
393
+ const PluginInstaller = require("@saltcorn/plugins-loader/plugin_installer");
394
+ const airgap = getState().getConfig("airgap", false);
395
+ if (airgap && !Plugin.is_fixed_plugin(plugin.location))
396
+ Plugin.ensureAirgapedVersion(plugin, getRootState().getConfig("pre_installed_module_infos", []));
397
+ const loader = new PluginInstaller(plugin, {
398
+ scVersion: packagejson.version,
399
+ envVars: { PUPPETEER_SKIP_DOWNLOAD: true },
400
+ force: force,
401
+ });
402
+ return await loader.install();
403
+ }
404
+ /**
405
+ * Load all plugins from the database into state
406
+ * @param force - passed through to {@link loadPlugin} for each plugin
407
+ * @param reloadModule - force fresh module loads for each plugin
408
+ */
409
+ static async loadAllPlugins(force, reloadModule = false) {
410
+ const { getState } = require("../db/state");
411
+ await getState().refresh(true);
412
+ const plugins = await db_1.default.select("_sc_plugins");
413
+ for (const plugin of plugins) {
414
+ try {
415
+ await Plugin.loadPlugin(plugin, force, undefined, reloadModule);
416
+ }
417
+ catch (e) {
418
+ console.error(e);
419
+ }
420
+ }
421
+ await getState().refresh_userlayouts();
422
+ await getState().refresh(true, true);
423
+ if (!isRoot())
424
+ Plugin.reloadAuthFromRoot();
425
+ }
426
+ /**
427
+ * Load plugin and its dependencies and save into local installation
428
+ * @param plugin - plugin to install
429
+ * @param force - force reinstall; retries after removing the install dir on failure
430
+ * @param noSignalOrDB - skip database upsert and processSend signal (e.g. during restore)
431
+ * @param __ - i18n translation function for user-facing messages
432
+ * @param allowUnsafeOnTenantsWithoutConfigSetting - allow unsafe plugins on tenants without the global config flag
433
+ * @param overwriteDependencies - substitute local paths for dependencies; testing only
434
+ * @returns warning/info messages collected during install, or `undefined` if skipped
435
+ */
436
+ static async loadAndSaveNewPlugin(plugin, force, noSignalOrDB, __ = (str) => str, allowUnsafeOnTenantsWithoutConfigSetting, overwriteDependencies) {
437
+ const { getState, getRootState } = require("../db/state");
438
+ const PluginInstaller = require("@saltcorn/plugins-loader/plugin_installer");
439
+ const tenants_unsafe_plugins = getRootState().getConfig("tenants_unsafe_plugins", false);
440
+ const tenants_install_git = getRootState().getConfig("tenants_install_git", false);
441
+ if (!isRoot() &&
442
+ !tenants_install_git &&
443
+ (plugin.source === "git" || plugin.source === "github")) {
444
+ console.error("\nWARNING: Skipping git/github plugin ", plugin.name);
445
+ return;
446
+ }
447
+ if (!isRoot() && !tenants_unsafe_plugins) {
448
+ if (plugin.source !== "npm") {
449
+ console.error("\nWARNING: Skipping unsafe plugin ", plugin.name);
450
+ return;
451
+ }
452
+ await db_1.default.runWithTenant(db_1.default.connectObj.default_schema, async () => await Plugin.store_plugins_available());
453
+ const instore = getRootState().getConfig("available_plugins", []);
454
+ const safes = instore
455
+ .filter((p) => !p.unsafe)
456
+ .map((p) => p.location);
457
+ if (!safes.includes(plugin.location) &&
458
+ !allowUnsafeOnTenantsWithoutConfigSetting) {
459
+ console.error("\nWARNING: Skipping unsafe plugin ", plugin.name);
460
+ return;
461
+ }
462
+ }
463
+ const airgap = getState().getConfig("airgap", false);
464
+ if (plugin.source === "npm" && !airgap)
465
+ await Plugin.ensurePluginSupport(plugin);
466
+ if (airgap && !Plugin.is_fixed_plugin(plugin.location))
467
+ Plugin.ensureAirgapedVersion(plugin, getRootState().getConfig("pre_installed_module_infos", []));
468
+ const loadMsgs = [];
469
+ const loader = new PluginInstaller(plugin, {
470
+ scVersion: packagejson.version,
471
+ envVars: { PUPPETEER_SKIP_DOWNLOAD: true },
472
+ force: force,
473
+ });
474
+ const { version, plugin_module, location, loadedWithReload, msgs } = await loader.install();
475
+ if (msgs)
476
+ loadMsgs.push(...msgs);
477
+ for (const loc of plugin_module.dependencies || []) {
478
+ const overwrite = (overwriteDependencies || {})[loc];
479
+ if (overwrite) {
480
+ const pckJson = require(path_1.default.join(overwrite, "package.json"));
481
+ await Plugin.loadAndSaveNewPlugin(new Plugin({
482
+ name: pckJson.name,
483
+ location: overwrite,
484
+ source: "local",
485
+ }), true, noSignalOrDB);
486
+ }
487
+ else {
488
+ const existing = await Plugin.findOne({ location: loc });
489
+ if (!existing && loc !== plugin.location) {
490
+ await Plugin.loadAndSaveNewPlugin(new Plugin({
491
+ name: loc.replace("@saltcorn/", ""),
492
+ location: loc,
493
+ source: "npm",
494
+ }), force, noSignalOrDB);
495
+ }
496
+ }
497
+ }
498
+ let registeredWithReload = false;
499
+ try {
500
+ getState().registerPlugin(plugin_module.plugin_name || plugin.name, plugin_module, plugin.configuration, location, plugin.name);
501
+ }
502
+ catch (error) {
503
+ if (force) {
504
+ getState().log(2, `Error registering plugin ${plugin.name}. Removing and trying again.`);
505
+ await loader.remove();
506
+ await loader.install();
507
+ getState().registerPlugin(plugin_module.plugin_name || plugin.name, plugin_module, plugin.configuration, location, plugin.name);
508
+ registeredWithReload = true;
509
+ }
510
+ else {
511
+ throw error;
512
+ }
513
+ }
514
+ if (loadedWithReload || registeredWithReload) {
515
+ loadMsgs.push(__("The plugin was corrupted and had to be repaired. We recommend restarting your server.", plugin.name));
516
+ }
517
+ if (plugin_module.onLoad) {
518
+ try {
519
+ await plugin_module.onLoad(plugin.configuration);
520
+ }
521
+ catch (error) {
522
+ console.error(error);
523
+ }
524
+ }
525
+ if (version)
526
+ plugin.version = version;
527
+ if (isRoot() && plugin_module.authentication) {
528
+ const { eachTenant } = require("@saltcorn/admin-models/models/tenant");
529
+ await eachTenant(Plugin.reloadAuthFromRoot);
530
+ }
531
+ if (!noSignalOrDB) {
532
+ await plugin.upsert();
533
+ getState().processSend({
534
+ installPlugin: plugin,
535
+ tenant: db_1.default.getTenantSchema(),
536
+ force: false,
537
+ });
538
+ }
539
+ return loadMsgs;
540
+ }
541
+ /**
542
+ * When the database has another plugin version, don't override the pre-installed module
543
+ * @param plugin - plugin whose version may be mutated
544
+ * @param airgapedStore - content of `pre_installed_module_infos` config
545
+ */
546
+ static ensureAirgapedVersion(plugin, airgapedStore) {
547
+ const { getState } = require("../db/state");
548
+ const airgapedPlugin = airgapedStore.find((p) => p.location === plugin.location);
549
+ if (!airgapedPlugin) {
550
+ throw new Error(`Plugin ${plugin.name} from location ${plugin.location} not found in local airgapped store`);
551
+ }
552
+ if (airgapedPlugin.version !== plugin.version) {
553
+ getState().log(5, `Overriding plugin ${plugin.name} version ${plugin.version} with airgapped store version ${airgapedPlugin.version}`);
554
+ plugin.version = airgapedPlugin.version;
555
+ }
556
+ }
557
+ /**
558
+ * Copy auth methods with `shareWithTenants: true` from root state into current tenant state
559
+ */
560
+ static reloadAuthFromRoot() {
561
+ const { getState, getRootState } = require("../db/state");
562
+ if (isRoot())
563
+ return;
564
+ const rootState = getRootState();
565
+ const tenantState = getState();
566
+ if (!rootState || !tenantState || rootState === tenantState)
567
+ return;
568
+ tenantState.auth_methods = {};
569
+ for (const [k, v] of Object.entries(rootState.auth_methods)) {
570
+ if (v.shareWithTenants)
571
+ tenantState.auth_methods[k] = v;
572
+ }
573
+ }
253
574
  }
254
575
  module.exports = Plugin;
255
576
  //# sourceMappingURL=plugin.js.map